C와 C 모두에서 유효한 코드는 각 언어로 컴파일할 때 다르게 동작할 수 있나요?
C와 C는 많은 유사점을 공유하지만 특정 코드는 코드가 두 언어 모두에서 구문적으로 유효하더라도 구문은 이들 언어로 컴파일될 때 서로 다른 결과를 생성할 수 있습니다.
함수 호출과 객체 선언
이러한 시나리오 중 하나는 함수와 관련됩니다. 전화. C90에서는 사전 선언 없이 함수를 호출할 수 있습니다. 그러나 C에서는 선언 없이 f()를 호출하면 f 유형의 객체가 생성됩니다.
예제 코드:
다음 코드를 고려하세요.
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
동작 차이점:
버전 고려 사항:
이 동작 차이점은 C90에만 해당됩니다. C 표준의 이후 버전(예: C99)에서는 선언 없이 함수를 호출하는 것이 더 이상 유효하지 않습니다. 결과적으로 코드는 C와 C 모두에서 동일하게 작동합니다.
위 내용은 유효한 코드에도 불구하고 C와 C에서 함수 호출이 다르게 동작할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!