주요 차이점 : C와 C ++는 서로 다른 두 가지 컴퓨터 프로그래밍 언어입니다. C ++은 C 프로그래밍 언어에서 개발되었습니다. 그러나 그들은 사실상 아주 다릅니다. 가장 분명한 차이점은 C는 프로 시저 지향 언어이고 C ++은 프로 시저와 객체 지향 프로그래밍을 모두 지원하므로 하이브리드 언어라고하는 경우가 많습니다.
C는 현재 사용되는 가장 오래된 프로그래밍 언어 중 하나이며 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 이전에 어셈블리 언어로 코딩 된 응용 프로그램에서 지속적으로 사용되었습니다. 여기에는 UNIX 컴퓨터 운영 체제가 포함됩니다. C는 C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python 및 Unix의 C 쉘과 같은 많은 프로그래밍 언어에도 직접적으로 또는 간접적으로 영향을줍니다. 이러한 새로운 언어에도 불구하고 C는 여전히 인기있는 프로그래밍 언어입니다.
C ++은 원래 C의 기능 향상으로 시작되었습니다. C와 소스 및 링크 호환이 가능하도록 설계되었지만 클래스, 가상 함수, 연산자 오버로딩, 다중 상속, 템플릿, 예외 처리 등을 추가했습니다. 결국, 그 자체로 프로그래밍 언어로 간주되기에 충분합니다. 원래 1998 년 ISO / IEC 14882 : 1998 인증 프로그래밍 언어로 비준되었습니다. 오늘날 C ++은 이제 하드웨어 설계에 일반적으로 사용됩니다.
C는 세미콜론 (;)을 명령문 종료 자로 사용하고 중괄호 ({})를 사용하여 명령문 블록을 그룹화하는 범용 프로그래밍 언어입니다. 그것은 구조화 된 프로그래밍을위한 기능을 가지고 있으며 그 설계는 일반적인 기계 명령어에 효율적으로 매핑 할 수있는 구조를 제공합니다. 또한 어휘 변수 범위와 재귀를 허용하고 많은 의도되지 않은 작업을 방지하는 정적 유형 시스템이 있습니다.
그러나 C ++과 비교할 때 C에는 많은 제한이 있습니다. C는 객체 지향이 아니기 때문에 OOPS 개념을 지원하지 않습니다. C는 함수 및 연산자 오버로딩을 지원하지 않습니다. 구조체 내부에서 함수를 사용할 수 없습니다. 가상 함수 및 참조 변수 또는 예외 처리를 지원하지 않습니다. 또한 참조 변수를 지원하지 않습니다. 또한 C는 캡슐화 또는 데이터 보안을 제공하지 않습니다. 비교해 보면 C ++은 이러한 모든 기능을 지원합니다.
또한 두 언어는 주소 메모리 기능, 입 / 출력 및 GUI 프로그래밍 방식이 다릅니다. 예를 들어, C는 calloc (), malloc () 및 free () 함수를 사용하여 메모리를 할당 및 할당 해제하고 C ++은 new 및 delete를 사용합니다. C는 입출력을 위해 scanf () 및 printf ()를 사용하고 C ++은 cin >> 및 cout << 연산자를 사용합니다. C는 GUI 프로그래밍을위한 GTK 도구를 지원하지만 C ++은 GUI 프로그래밍을위한 Qt 도구를 지원합니다. 또 다른 차이점은 C는 프로그램 상단의 모든 변수를 선언해야하지만 C ++에서는 변수가 프로그램의 어느 곳에서나 선언 될 수 있다는 것입니다.
또한 C ++은 일반적으로 C보다 사용하기 쉽기 때문에 배울 것이 더 쉬운 것으로 간주됩니다. C ++에는 특히 C 프레임 워크를 처음 접하는 사람에게 코딩을 쉽게 해주는 추가 기능이 많이 있습니다. 그러나 많은 사람들이 그것이 실제로 중요하다고 주장합니다. 두 언어는 너무 많이 다르므로 두 언어가 서로 독립적으로 존재할 수 있습니다. 한 가지 명심해야 할 것은 C는 C ++보다 훨씬 구조화 된 반면 C ++은 C보다 표현력이 풍부하고 추상적으로 설계되었습니다.
C와 C ++의 비교 :
기음 | C ++ | |
설립 | 1969 년부터 1973 년까지 AT & T Bell Labs의 Dennis Ritchie가 개발했습니다. | 1979 년 벨 연구소 (Bell Labs)의 비얀 스트로 우 스트롭 (Bjarne Stroustrup)이 개발했습니다. |
소스 코드 | 자유 형식 프로그램 소스 코드 | 원래 C 프로그래밍 언어로 개발되었습니다. |
언어 | 절차 중심 언어 | 절차 적 및 객체 지향 프로그래밍 패러다임을 모두 지원합니다. 따라서 종종 하이브리드 언어라고합니다. |
접근 | 하향식 접근법을 따릅니다. | 상향식 접근법을 따른다. |
관계 | C는 C ++의 하위 집합입니다. C ++ 코드를 실행할 수 없습니다. | C ++는 C의 상위 집합입니다. C ++은 C 코드의 대부분을 실행할 수 있지만 C는 C ++ 코드를 실행할 수 없습니다. |
드라이브 | 함수 중심 언어 | 객체 중심 언어 |
초점 | 데이터보다는 방법 또는 프로세스에 중점을 둡니다. | 방법이나 절차보다는 데이터에 중점을 둡니다. |
빌딩 블록 | 기능들 | 사물 |
키워드 | 32 개의 키워드가 들어 있습니다. | 52 개의 키워드 포함 |
수확량 개념 | 'C'언어는 프로 시저 지향 언어이므로 클래스, 객체, 상속, 다형성, 데이터 숨기기 등과 같은 OOPS 개념을 지원하지 않습니다. | C ++은 객체 지향 언어로서 클래스, 객체, 데이터 숨김, 다형성, 상속, 추상화 등을 지원합니다. |
기능들 |
|
|
메모리 함수 | 메모리 할당 및 할당 해제에 calloc (), malloc () 및 free () 함수를 사용합니다. | 새로운 연산자를 사용하고 동일한 목적으로 삭제합니다. |
캡슐화 | 지원하지 않습니다. 데이터와 함수는 별도의 자유 개체입니다. | 캡슐화를 지원합니다. 데이터와 함수는 객체의 형태로 함께 캡슐화됩니다. Objects 클래스는 객체 구조의 청사진을 제공합니다. |
정보 숨기기 | C는 정보 숨기기를 지원하지 않습니다. 여기서 데이터는 자유 엔티티이며 외부 코드로 조작 할 수 있습니다. | 캡슐화는 데이터 구조와 연산자가 의도 한대로 사용되도록 데이터를 숨 깁니다. |
데이터 | 기본 제공 및 원시 데이터 형식을 지원합니다. 비 객체 지향으로 인해 데이터가 보호되지 않습니다. | 내장 및 사용자 정의 데이터 유형을 모두 지원합니다. C ++에서 데이터 보안 (숨김) |
수평 | 저수준 언어 | 중간 수준 언어 |
입출력 | 'C'언어는 입출력을 위해 scanf () 및 printf ()를 사용합니다. | 'C ++'언어는 입출력을 위해 cin >> 및 cout << 연산자를 사용합니다. |
변수 선언 | C는 프로그램 상단에 모든 변수를 선언해야합니다. | C ++에서 변수는 사용하기 전에 프로그램의 어느 위치에서나 선언 할 수 있습니다. |
다중 선언 | 전역 변수의 다중 선언이 허용됩니다. | 전역 변수에 대한 다중 선언은 허용되지 않습니다. |
매핑 | 데이터와 함수 간의 매핑은 어렵고 복잡합니다. | 데이터와 함수 사이의 매핑은 "Objects"를 사용하여 사용할 수 있습니다. |
GUI 프로그래밍 | GUI 프로그래밍을위한 GTK 툴 지원 | C ++은 GUI 프로그래밍을위한 Qt 툴을 지원합니다. |
계승 | C에서 상속을 사용할 수 없습니다. | C ++에서 상속 가능 |
파일 확장자 | 파일 확장명이 .c입니다. | 파일 확장명이 .cpp입니다. |
기본 헤더 파일 | C 언어에서 사용되는 기본 헤더 파일은 stdio.h입니다. | C ++에서 사용되는 기본 헤더 파일은 iosteam.h입니다. |
C와 C ++의 차이점에 대한 몇 가지 예 :
예제들 | 기음 | C ++ |
변수 선언 | 상단에서만 : int i; for (i = 10; i <10; i ++) | 프로그램의 어느 곳에서나 : for (int i = 10; i <10; i ++) |
메모리 할당 | Malloc : int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | 새로운: int * x = 새로운 int; int * x_array = 새로운 int [10]; |
메모리 방출 | 비어 있는: 무료 (x); 무료 (x_array); | 지우다: x를 삭제하십시오; delete [] x_array; |