본문 바로가기
CS(computer science)/C , C++

CS 지식 / C와 C++의 차이

by clean_h 2022. 1. 7.
728x90

C와 C++의 차이

출처 https://docs.microsoft.com/ko-kr/windows/dev-environment/

 

두언어의 차이는 C언어는 절차지향 프로그래밍(Procedure Oriented Programming)이고 C++언어는 객체지향 프로그래밍(Object Oriented Programming)이라는 것이다. 

 

C++은 C를 발전시켜 만든 언어이기 때문에 두 언어는 매우 유사하다. 대부분의 C++ 컴파일러가 C 코드를 컴파일 할 수 있다. 

기능 C C++
  함수 기반 객체 중심
namespace X O
구조체에서 함수 사용 X O
Overloding X O
표준 입출력 scanf, printf cin, cout
동적할당 malloc new
예외처리(Excoption Handling) X O
사용되는 영역 Unix, OS, 시스템 프로그래밍 일반적인 프로그래밍

 

객체지향 프로그래밍(C++) / 절차지향 프로그래밍(C)

이미지 출처 - https://yozm.wishket.com/magazine/detail/637/
https://m.blog.naver.com/atalanta16/220249264429

두 가지 프로그래밍 방식은 반대어는 아니다.

객체지향 프로그래밍은 기능 중심, 절차지향 프로그래밍은 데이터 중심이다. 

절차지향 언어는 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어 있고

객체지향 언어는 객체로 데이터와 메소드를 만들어 묶어 구현하는 방식이다. 객체 지향에는 상속, 캡슐화, 다형성과 같은 특징들이 있다. 이 특징들은 다음에 따로 정리해두기로 한다.

 

  장점 단점
C 컴퓨터의 처리구조와 유사해 실행속도가 빠름

효율성이 높고 간결

문법이 간결

Low level 프로그래밍에 사용(하드웨어 직접 제어 프로그래밍 가능)

이식성이 좋음
유지보수가 어려움

실행 순서가 정해져 있어 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움

디버깅이 어려움
C++ 코드의 재활용성이 높음

객체지향 프로그래밍(캡슐화, 상속성, 다형성)

구조화 되어있어 오류 수정하기 쉬움

이식성이 좋고 유연함
객체지향언어로 객체의 역할과 기능을 이해해야 하므로 복잡함

절차지향언어보다 속도가 느림

메모리가 안전하지 않음

 

728x90

'CS(computer science) > C , C++' 카테고리의 다른 글

C / C++ 기술 면접 질문  (4) 2021.11.23

댓글