一段时间以来,我一直在尝试使用Google进行搜索,但是如果可以完全解决,我似乎找不到任何明确的答案。
我想知道是否可以用与这种类型的if类似的方式在C ++中执行MultiLine #if语句
if (
1 == 1 ||
2 == 2 ||
3 == 3
) {
cout << "True\n";
}
我一直希望有类似的东西(我知道这是绝望的错误)
#if
1 == 1 ||
2 == 2 ||
3 == 3
#then
cout << "True\n";
#else
cout << "False\n";
#endif
答案 0 :(得分:6)
是的。带有续行:
#if \
1 == 1 || \
2 == 2 || \
3 == 3
cout << "True\n";
#else
cout << "False\n";
#endif
答案 1 :(得分:6)
#if \
1 == 1 || \
2 == 2 || \
3 == 3
cout << "True\n";
#else
cout << "False\n";
#endif
反斜杠-换行符组合在预处理的很早就被剥离了,甚至在标记输入之前也是如此。您可以使用它在多个物理行之间分散预处理器指令。
哎呀,理论上你甚至可以做到
#i\
f 1 == 1 |\
| 2 == 2 || 3 =\
= 3
但是您的同事可能会对您不高兴。
答案 2 :(得分:2)
正确的使用方法如下。可以在当前行的末尾使用\
将每个进行处理的宏写入多行。 cpp中没有#then
关键字:)
#if \
1 == 1 || \
2 == 2 || \
3 == 3
cout << "True\n";
#else
cout << "False\n";
#endif
答案 3 :(得分:2)
我认为解决此问题的方法是在行'\'的末尾使用字符转义
#if \
1 == 1 || \
2 == 2 || \
3 == 3
void foo(){}
#else
void bar(){}
#endif