logo

C와 C++의 차이점

사이의 유사점 그리고 C++ 이다:

  • 두 언어 모두 비슷한 구문을 가지고 있습니다.
  • 두 언어의 코드 구조는 동일합니다.
  • 두 언어의 편집은 비슷합니다.
  • 그들은 동일한 기본 구문을 공유합니다. 거의 모든 C의 연산자와 키워드는 C++에도 있으며 동일한 작업을 수행합니다.
  • C++는 C보다 문법이 약간 확장되었지만 기본 문법은 동일합니다.
  • 두 가지 모두의 기본 메모리 모델은 하드웨어와 매우 유사합니다.
  • 스택, 힙, 파일 범위 및 정적 변수에 대한 동일한 개념이 두 언어 모두에 존재합니다.



차이점 그리고 C++ 이다:
C++는 종종 C의 상위 집합으로 간주됩니다. C++는 클래스가 있는 C로도 알려져 있습니다. 이것은 C++가 처음 만들어졌을 때 거의 사실이었지만 시간이 지남에 따라 두 언어는 C가 그렇지 않은 여러 기능을 선택하면서 발전했습니다. 최신 버전의 C++에서는 찾을 수 없거나 아직 C++ 버전에 포함되지 않았습니다. 즉, C++는 여전히 대부분 C 추가의 상위 집합입니다. 객체 지향 프로그래밍 , 예외 처리 , 템플릿 및 보다 광범위한 표준 라이브러리를 제공합니다.

다음은 C와 C++ 사이의 보다 명확하고 일반적인 차이점에 대한 표입니다. 언어와 언어 버전 간에는 더 많은 미묘한 차이가 있습니다.

분할 오류 코어가 덤프되었습니다.
C++
C는 1969년부터 1973년까지 AT&T Bell Labs에서 Dennis Ritchie에 의해 개발되었습니다. C++는 1979년 Bjarne Stroustrup에 의해 개발되었습니다.
C는 다형성, 캡슐화 및 상속을 지원하지 않습니다. 이는 C가 객체 지향 프로그래밍을 지원하지 않음을 의미합니다. C++ 지원 다형성 , 캡슐화 , 그리고 계승 객체 지향 프로그래밍 언어이기 때문입니다.
C는 (대부분) C++의 하위 집합입니다. C++는 (대부분) C의 상위 집합입니다.
키워드 C에서:
* C90: 32
* C99: 37
* C11: 44
* C23: 59
키워드 C++에서:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
코드 개발을 위해 C는 다음을 지원합니다. 절차적 프로그래밍 . C++는 두 언어를 모두 지원하기 때문에 하이브리드 언어로 알려져 있습니다. 절차상의 그리고 객체 지향 프로그래밍 패러다임 .
C는 절차적 프로그래밍 언어이기 때문에 데이터와 기능이 분리되어 있습니다. C++에서는 데이터와 함수가 객체 형태로 함께 캡슐화됩니다.
C는 정보 숨기기를 지원하지 않습니다. 데이터 구조와 연산자가 의도한 대로 사용되도록 보장하기 위해 데이터는 캡슐화에 의해 숨겨집니다.
내장 데이터 유형은 C에서 지원됩니다. 내장 및 사용자 정의 데이터 유형은 C++에서 지원됩니다.
C는 절차적 프로그래밍 언어이기 때문에 함수 중심 언어입니다. C++은 객체지향 프로그래밍이기 때문에 객체지향 언어입니다.
C에서는 함수 및 연산자 오버로딩이 지원되지 않습니다. 함수 및 연산자 오버로드는 C++에서 지원됩니다.
C는 함수 중심 언어입니다. C++는 객체지향 언어이다
C의 함수는 구조 내부에 정의되지 않습니다. C++의 구조 내에서 함수를 사용할 수 있습니다.
네임스페이스 기능은 C 내부에 없습니다. 네임스페이스 이름 충돌을 방지하는 C++에서 사용됩니다.
표준 IO 헤더는 stdio.h . 표준 IO 헤더는 iostream.h .
참조 변수는 C에서 지원되지 않습니다. 참조 변수는 C++에서 지원됩니다.
C에서는 가상 및 친구 기능을 지원하지 않습니다. 가상 그리고 친구 기능 C++에서 지원됩니다.
C는 상속을 지원하지 않습니다. C++에서는 상속을 지원합니다.
C는 데이터에 초점을 맞추는 대신 방법이나 프로세스에 초점을 맞춥니다. C++는 방법이나 절차에 초점을 맞추는 대신 데이터에 초점을 맞춥니다.
C는 malloc() 그리고 콜록() 에 대한 기능 동적 메모리 할당 , 그리고 무료() 메모리 할당 해제를 위해. C++에서는 다음을 제공합니다. 새로운 운영자 메모리 할당 및 삭제 연산자 메모리 할당 해제를 위해.
C에서는 예외 처리에 대한 직접적인 지원을 지원하지 않습니다. 예외 처리 C++에서 지원됩니다.
스캔프() C에서는 입출력을 위해 printf() 함수를 사용한다. 신과 cout 에 사용됩니다 C++의 입출력 .
C 구조에는 액세스 수정자가 없습니다. C++ 구조에는 액세스 수정자가 있습니다.
C 프로그래밍 언어에는 엄격한 유형 검사가 없습니다. C++에서 엄격한 유형 체크인이 완료되었습니다. C 컴파일러에서 잘 실행되는 많은 프로그램은 C++ 컴파일러에서 많은 경고와 오류를 발생시킵니다.
C는 오버로딩을 지원하지 않습니다. C++에서는 오버로딩을 지원합니다.
공용체를 사용한 유형 말장난이 허용됩니다(C99 이상). 공용체를 사용한 유형 말장난은 정의되지 않은 동작입니다(매우 특정한 상황 제외).
명명된 이니셜라이저가 순서대로 나타날 수 있습니다. 명명된 이니셜라이저는 구조체의 데이터 레이아웃과 일치해야 합니다.
파일 확장자는 .c입니다. 파일 확장자는 .cpp, .c++, .cc 또는 .cxx입니다.
메타 프로그래밍: 매크로 + _Generic() 메타 프로그래밍: 템플릿(매크로는 여전히 지원되지만 권장되지 않음)
C에는 32개의 키워드가 있습니다. C++에는 97개의 키워드가 있습니다.