【发布时间】:2012-07-26 18:24:51
【问题描述】:
我知道 C 是 C++ 的子集(即不存在不是有效 C++ 代码的有效 C 代码)。我的问题是g++ 是否与所有 C 代码完全兼容。例如,会
g++ -o testing test.c
生成与
相同的二进制文件gcc -o testing test.c
在所有情况下?
更具体地说,如果它们并不总是创建相同的二进制文件,是否有任何理由会出现问题?如果我不确定代码,总是使用g++ 是否安全?
【问题讨论】:
-
there does not exist valid C code that is not valid C++ code- 错了。看看 VLA。 -
C++ 确实有 C 代码可能用作变量名的关键字。
-
我的“关闭:问题的前提是错误的”在哪里?
-
@ewok: 另请注意,如果您的 C 头文件未准备好从 C++ 中包含,您还会遇到链接器错误(C++ 编译器会破坏名称,而 C 库不会,符号赢了不匹配)。这超出了是否所有 C 代码都可以在 C++ 编译器中编译。
标签: c++ c gcc compiler-construction g++