首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ MultiLine #if

C++ MultiLine #if
EN

Stack Overflow用户
提问于 2019-07-05 16:06:17
回答 4查看 2.8K关注 0票数 4

我已经在谷歌上搜索了一段时间了,但我似乎找不到任何明确的答案,如果它可以做到的话。

我想知道是否有可能在C++中以类似于这种类型的if的方式执行MultiLine #if语句

代码语言:javascript
复制
if (
   1 == 1 ||
   2 == 2 ||
   3 == 3
) {
   cout << "True\n";
}

我希望有一些类似的东西(我知道这是无可救药的错误)

代码语言:javascript
复制
#if
   1 == 1 ||
   2 == 2 ||
   3 == 3
#then
   cout << "True\n";
#else
   cout << "False\n";
#endif
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-05 16:09:02

代码语言:javascript
复制
#if \
   1 == 1 || \
   2 == 2 || \
   3 == 3
   cout << "True\n";
#else
   cout << "False\n";
#endif

反斜杠-换行符组合在预处理过程中非常早地就被剥离了,甚至在标记输入之前也是如此。您可以使用它将预处理器指令分布在多个物理线路上。

见鬼,理论上你甚至可以

代码语言:javascript
复制
#i\
f 1 == 1 |\
| 2 == 2 || 3 =\
= 3

但是你的同事可能会生你的气。

票数 13
EN

Stack Overflow用户

回答已采纳

发布于 2019-07-05 16:09:02

正确的用法如下。每个预处理宏可以在当前行的末尾使用\以多行的形式编写。cpp中没有#then关键字:)

代码语言:javascript
复制
    #if \
       1 == 1 || \
       2 == 2 || \
       3 == 3
       cout << "True\n";
    #else
       cout << "False\n";
    #endif
票数 13
EN

Stack Overflow用户

发布于 2019-07-05 16:08:37

是的。使用连续行:

代码语言:javascript
复制
#if \
   1 == 1 || \
   2 == 2 || \
   3 == 3
   cout << "True\n";
#else
   cout << "False\n";
#endif
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56899016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档