这个问题是由对post by Herb Sutter的回复引发的,他在那里解释了MS决定不支持/制作C99编译器,而只是使用C++(11)标准中的C(99)特性.
One commenter replied:
(.)C很重要,至少值得关注一下.
有很多现有的代码是有效的C语言,但不是 有效的C++.该代码不太可能被重写(.)
因为我只用MS C++编程,所以我真的不太了解"纯"C语言,也就是说,我不知道我正在使用的C++语言的哪些细节不是用C(99)编写的,我也几乎不知道哪些C99代码在C++编译器中不能正常工作.
请注意,我知道C99 only restrict
关键字,对我来说,它的应用范围非常狭窄,还知道可变长度数组(我不确定它们的广泛程度或重要性).
此外,我非常感兴趣是否有任何重要的语义差异或trap ,即C(99)代码在C++(11)下可以compile,但在C++编译器中与C编译器做一些不同的事情.
快速链接:答案中的外部资源:
- Wikipedia page个
- David R. Tribble's comparison(由2001年起)
- C++11标准:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf(第C.1节)