>  기사  >  백엔드 개발  >  C와 C++ 간의 비호환성

C와 C++ 간의 비호환성

PHPz
PHPz앞으로
2023-08-28 18:33:061083검색

C와 C++ 간의 비호환성

여기서 C와 C++ 사이의 일부 비호환성을 볼 수 있습니다. C 컴파일러로 컴파일할 수 있는 일부 C 코드는 C++ 컴파일러로 컴파일할 수 없습니다. 오류가 반환됩니다.

  • 매개변수 목록 다음에 매개변수 유형을 선택적으로 지정하는 구문을 사용하여 함수를 정의할 수 있습니다.

#include<stdio.h>
void my_function(x, y)int x;int y; { // Not valid in C++
   printf("x = %d, y = %d", x, y);
}
int main() {
   my_function(10, 20);
}

Output

x = 10, y = 20

Output

Error in C++ :- x and y was not declared in this scope
  • C 언어 또는 일부 이전 버전의 C++에서는 기본 변수 유형이 정수입니다. 그러나 새 버전의 C++에서는 오류가 발생합니다.

Example

#include<stdio.h>
main() {
   const x = 10;
   const y = 20;
   printf("x = %d, y = %d", x, y);
}

Output

x = 10, y = 20

Output

Error in C++ :- x does not name a type
y does not name a type
  • C 언어에서는 extern 키워드를 사용하지 않고도 전역 데이터 개체를 여러 번 선언할 수 있습니다. C 컴파일러는 이것을 여러 선언 중 하나의 선언으로 처리합니다.

Example

#include<stdio.h>
int x;
int x;
int main() {
   x = 10;
   printf("x = %d", x);
}

Output

x = 10

Output

Error in C++ :- Redefinition of int x
  • C 언어에서는 void 포인터를 할당 연산자의 오른쪽 피연산자로 사용하거나 포인터 유형 변수를 초기화할 수 있습니다.

Example

#include<stdio.h>
#include<malloc.h>
void my_function(int n) {
   int* ptr = malloc(n* sizeof(int)); //implicitly convert void* to int*
   printf("Array created. Size: %d", n);
}
main() {
   my_function(10);
}

Output

Array created. Size: 10

Output

Error in C++ :- Invalid conversion of void* to int*
  • C 언어에서는 매개변수 유형을 지정하지 않으면 여러 매개변수를 전달할 수 있습니다.

#include<stdio.h>
void my_function() {
   printf("Inside my_function");
}
main() {
   my_function(10, "Hello", 2.568, &#39;a&#39;);
}

Output

Inside my_function

Output

Error in C++ :- Too many arguments to function &#39;void my_function()&#39;

위 내용은 C와 C++ 간의 비호환성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제