21.24 C++ 是 C 的超集吗?可以用 C++ 编译器来编译 C 代码吗?

C++ 源自 C, 而且大部分都建立在 C 的基础上, 但是有一些合法的  C 代码在 C++ 中不合法。相反的, ANSI C 继承了 C++ 的几个特性, 包括原型和常量, 所以这两个语言并不是另一个的超集或子集; 而且它们在一些通用构造的定义上也不同。尽管有这些不同, 许多 C  程序在 C++ 环境中编译正确, 许多最新的编译器同时提供 C 和 C++ 的 编译模式。但是, 把 C 代码当成 C++ 来编译通常是个坏的注意; 两个语言的差异普遍上足够让你得到不好的结果。 参见问题  8.5 和 20.18

参考资料: [H&S, p. xviii, Sec. 1.1.5 p. 6, Sec. 2.8 pp. 36-7, Sec. 4.9 pp. 104-107]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)