在另一个问题中,我刚刚发现了C智慧的这颗小珍珠:
#define for if (false) {} else for
Run Code Online (Sandbox Code Playgroud)
这导致MSVC为一个非常有效的声明吐出"常量表达式"警告:
for (int i = 0; i <= 10; i++) {...}
Run Code Online (Sandbox Code Playgroud)
我理解为什么 MSVC抱怨,因为它扩展到:
if (false) {} else for (int i = 0; i <= 10; i++) {...}
Run Code Online (Sandbox Code Playgroud)
我只是不明白为什么开发人员会使用那个小片段.有人有想法吗?