#define和&&是否有问题?

时间:2011-02-23 17:21:19

标签: c syntax macros

我想知道在C中制作这样的定义是不是一个坏主意:

#define and &&
#define or  ||
#define not !

1 个答案:

答案 0 :(得分:6)

自己这样做肯定是个坏主意。

如果您确实需要and等名称而不是像&&这样的符号,则可以包含<iso646.h> C标准库标题,该标题定义了几个命名运算符,包括您提到的三个。

在C ++中,替代表示(如andor)是语言中内置的运算符,因此您不需要包含任何标题来使用它们,并且不可能将它们定义为宏(宏名称必须是标识符,替代表示是运算符,而不是标识符,即使在预处理期间)。