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)