小智 7
C和C++处理器之间存在一些差异.忽略预定义宏和可用系统头文件中的差异,当前版本的C和C++中出现的一些差异是:
and和朋友是C++中的运算符,而不是标识符.这意味着#define and &&在C中有效,但在C++ #if 1 and 2中无效,并且平均值在C++中有效,但在C中无效(除非and适当地定义为宏).false并且true被允许在C++ #if表达式,但所取代0(如所有标识符)中C.这意味着#if true/ C++/ #else/ C/ #endif扩展为C++,或者C,根据语言.与and朋友不同,这些不是运算符,因此可以用#define任何一种语言重新定义.::,.*和,->*是C++中的令牌.因此,##运算符可以用于在C++中形成它们,但不能在C中形成它们.foo,R"x("foo")x"在C中扩展宏,但在C++中不扩展.foo,0x1p+foo在C++中扩展宏,但在C中不扩展.