#elif定义没有括号

ins*_*pid 6 c++ visual-studio-2005 c-preprocessor

使用带有BLAH_BLAH的VS2005定义以下预处理器条件为false:

#elif defined BLAH_BLAH
Run Code Online (Sandbox Code Playgroud)

但如果我改成它

#elif defined(BLAH_BLAH)
Run Code Online (Sandbox Code Playgroud)

是真的.

为什么括号在这里有所作为?

Bo *_*son 8

它应该没有任何区别,除非BLAH_BLAH被定义为有趣的东西.


ins*_*pid 3

头文件是使用 Linux 编辑器创建的,并使用“添加现有”添加到项目中,在 VS 编辑器中创建文件后,其评估结果为 true。一定是 LF/CR 问题吗?