可能是重复问题:
使用C++编译器编译C源代码,可能会遇到哪些问题?
只是好奇是否可以使用C++编译器来编译C源代码?无论如何,是否有任何完全支持C99标准的编译器?
可能是重复问题:
使用C++编译器编译C源代码,可能会遇到哪些问题?
只是好奇是否可以使用C++编译器来编译C源代码?无论如何,是否有任何完全支持C99标准的编译器?
C++并不是C的超集。它们之间存在差异,这意味着一些C代码在C++模式下不能编译。
至于C99的支持,GCC和Clang最接近。Microsoft不支持C99,只关注C++(在某些地方与C99重叠)。
int main(void) { int class = 5; return class;}
我能够快速想到的两个问题(可能还有更多)是在使用C++编译C代码时会出现强制类型转换和变量名的问题。例如:
char* new = malloc(20);
上述代码是有效的C语言代码,但在C++编译时会出现以下错误:
char*
赋值给void*
。new
是一个关键字。是的,一些编译器支持C99。GCC可能支持,但我只有使用MSVC的经验,他们不支持它。