什么是“Clean C”,它与标准C有什么不同?

时间:2012-03-14 01:38:03

标签: c++ c

C ++中纯C和C有什么区别? 我想知道一些关于Lua所依据的“Clean C”的细节。有谁知道这些功能?

2 个答案:

答案 0 :(得分:15)

Clean C 是Harbison& Sons创造的一个术语。斯蒂尔书(C: A Reference Manual,Prentice Hall)。如果程序可以由标准C编译器和标准C ++编译器编译,则称该程序用Clean C编写;并且它的执行不会从两个编译器产生不同的可观察行为(优化问题无关紧要)。

答案 1 :(得分:2)

令我印象最明显的是,在C ++中,你必须强制转换malloc的返回值。结构也是在C ++中自动输入的。

始终将C编译器用于C代码,而不是C ++。 C ++与C不完全兼容。

其他一些差异可能是:

  • 在C中,声明void func();声明一个没有指定其参数是什么的函数,而在C ++中,void func();相当于C void func(void)',不带参数;
  • C ++中需要原型,而它通常只是C中的警告;
  • 字符常量的类型(如'a')在C中是int,在C ++中是char;
  • 字符串文字的类型是C中的char []和C ++中的const char [];
  • C中的一些合法变量名称,如类,是C ++中的保留关键字。