我可以测试预处理器指令的值吗?

克里斯

我有一个未设置的预处理器指令,因此我无法更改它,它是真还是假。

通常我会这样做:

#ifdef DIRECTIVE
// code
#endif

但这将始终运行,因为DIRECTIVE始终定义。

有没有一种方法可以让我基本上相当于:

#if DIRECTIVE
#endif

我想我能做到

bool DirectiveValue = DIRECTIVE;
if (DirectiveValue){

}

但我真的希望第二个代码块以某种方式成为可能。

感谢您的任何见解!

杰里棺材

预处理器有一个#if语句,因此您可以执行以下操作:#if DIRECTIVE,如果表达式的值为零,则(就像在 C 中一样)测试为 false,如果表达式的值不为零,则测试为 true。

虽然不清楚它是否为您提供了真正的优势,但还有一种中间形式:if constexpr (DIRECTIVE),它在编译时评估,没有运行时,所以它#if在某种程度上类似于 an ——但仍然使用普通的 C++语法,并与一般语言集成,而不是成为其自己的小东西,规则与编译器的其余部分略有不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C# 预处理器指令可以嵌套吗?

我可以在Unity中使用预处理器指令来区分调试和发布模式吗

您可以在汇编中添加预处理器指令吗?

您可以为 C# 版本添加预处理器指令吗?

我可以使用C预处理器有条件地检查宏的值吗?

是否可以 typedef 预处理器指令?

我可以验证预处理器宏以确保它是一个数字吗?

我可以在 C 的预处理器连接中使用“(”吗?

如何测试C预处理器-D标志值?

C预处理器包含指令

DXL 有预处理器吗

我可以在Visual Studio Express 2013中使用Sass(css预处理器)进行Web吗?

我可以使用C#预处理器跳过Kinect v2.0代码吗?

c# 预处理器指令来评估来自配置管理器的值

使用 sed 和 jq 更改 .ino 文件中预处理器指令的值

如何将Visual Studio宏值转换为预处理器指令?

ghc / flymake挂在预处理器指令上

Dart const作为预处理器指令

在Visual Studio中的哪里指定预处理器指令?

在预处理器指令中结合 ## 和 _type

为什么#pragma被视为预处理器指令?

使用预处理器指令从C代码进行AST

构建时出错的预处理器指令

某些地址空间的预处理器指令

我可以使用预处理器使这个更清晰吗?

可以使用预处理器完成此for循环吗?

gdb可以打印扩展的预处理器/宏结果吗?

我的处理器和GPU的图形可以合并吗?

我们可以定义一个预处理器宏,该宏根据计时器打印调试消息吗?