#define和&&有什么问题吗?

Vla*_*hev 3 c syntax macros

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

#define and &&
#define or  ||
#define not !
Run Code Online (Sandbox Code Playgroud)

Jam*_*lis 6

自己这样做绝对是个坏主意.

如果你真的想要名称and而不是像这样的符号&&,你可以包含<iso646.h>C标准库头,它定义了几个命名运算符,包括你提到的三个.

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