여기에서는 C++로 컴파일되지 않는 일부 C 프로그램을 작성할 것입니다. C++는 모든 기능을 갖추고 C 코드와 호환되는 c의 후속 제품으로 간주되지만 C++ 컴파일러로 컴파일할 때 컴파일러가 되지 않거나 컴파일 오류가 발생하는 일부 프로그램이 있습니다.
C++로 컴파일되지 않는 일부 C 프로그램 목록은 다음과 같습니다. -
-
선언 전에 함수 호출 − C++에서 선언 전에 함수를 호출하면 컴파일 오류가 발생합니다. 그러나 이것은 c에서 잘 작동합니다.
예시
#include <stdio.h> int main(){ printHello(); return 0; } void printHello(){ printf("TutorialsPoint"); }
출력
TutorialsPoint
-
타입캐스트 포인터 사용 − c에서 포인터를 void로 선언한 다음 이 포인터를 사용하여 다른 데이터 변수를 가리키는 경우. 이것은 컴파일러 자체에 의해 C에서 수행될 수 있지만 C++에서는 이러한 포인터를 형변환해야 합니다.
예시
#include <stdio.h> int main(){ void *ptr; int *ptr2 = ptr; return 0; }
-
초기화하지 않고 상수 값 선언 − C에서는 값을 제공하지 않고 상수 값을 선언할 수 있지만 C++에서 수행하면 오류가 반환됩니다.
예시
#include <stdio.h> int main(){ const int x; printf("%d", x); return 0; }
출력
0
-
const 변수와 함께 일반 포인터 사용 − C++에서는 이것이 허용되지 않는 반면 c에서는 일반 포인터와 함께 const 변수를 사용할 수 있습니다.
예시
#include <stdio.h> int main(void){ int const x = 3424; int *cptr = &x; printf("value of pointer : %d\n", *cptr); return 0; }
출력
Value of pointer: 3424
-
특정 키워드를 변수 이름으로 사용 − C 프로그래밍 언어에서 특정 키워드를 변수 이름으로 사용하는 것은 유효합니다. 즉, C에서는 컴파일되지만 C++에서는 컴파일되지 않습니다.
예시
#include <stdio.h> int main(void){ int class = 5; printf("%d", class); }
출력
5
이것들은 C++에 포함된 키워드이며 일부는 new, delete,explicit 등입니다.