什么是"Clean C",它与标准 C 有何不同?
What is "Clean C" and how does it differ from standard C?
纯C和C++中的C有什么区别
Lua所基于的"CleanC"有哪些细节?这些功能是什么?
Clean C是Harbison&斯蒂尔的书(C:参考手册,Prentice Hall)。如果一个程序可以由标准的C编译器和标准的C++编译器编译,则称其为用Clean C编写的;并且它的执行不会产生与两个编译器不同的可观察行为(优化的问题无关紧要)。
我觉得最明显的一点是,在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++中的保留关键字
相关文章:
- Python中的for循环与C++有何不同
- 在C++中释放内存期间,迭代器与指针有何不同
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 收益率和回报有何不同?
- 覆盖私有功能,它与受保护功能有何不同?
- 无论代码长度如何,以下代码的内存要求有何不同?
- stl::unordered_map 和 stl::vector 的销毁有何不同
- C++ 友元函数在内存位置上有何不同?
- C 是否具有接口类概念,如果它在那里,那么它与Java接口类别有何不同
- std::u8string与std::string有何不同?
- 两种类型转换有何不同?
- 这个语句到底是什么意思 stack<int, list<int> > 它与 stack 有何不同<int>?
- 英特尔®事务同步扩展新指令 (TSX-NI) 与英特尔 TSX 有何不同?
- 指向成员函数的指针与指向数据成员的指针有何不同
- 字符 * 和字符串在C++中有何不同?(在描述中编写代码)
- 在C++中,Mixin与面向策略的设计有何不同
- "cin>>"与"cin.get"有何不同?还是不是?
- C++11: boost::make_tuple 与 std::make_tuple 有何不同?
- 什么是"Clean C",它与标准 C 有何不同?
- 编程 Arduino 与标准 C 有何不同