#elif 定义时不带括号
使用 VS2005 和 BLAH_BLAH 定义以下预处理器条件为 false:
#elif defined BLAH_BLAH
但如果我将其更改
#elif defined(BLAH_BLAH)
为 true。
为什么括号在这里会有所不同?
Using VS2005 with BLAH_BLAH defined the following preprocessor conditional is false:
#elif defined BLAH_BLAH
but if I change it to
#elif defined(BLAH_BLAH)
it is true.
Why do the parentheses make a difference here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它应该没有任何区别,除非 BLAH_BLAH 被定义为有趣的东西。
It shouldn't make any difference, unless BLAH_BLAH is defined as something funny.
头文件是使用 Linux 编辑器创建的,并使用“添加现有”添加到项目中,在 VS 编辑器中创建文件后,其评估结果为 true。一定是 LF/CR 问题吗?
The header file was created with a linux editor and added to the project with "Add Existing", after creating the file in the VS editor it evaluates to true. Must be a LF/CR issue?