![]() |
1
45
这里MYVARIABLE的值是1
这里MYVARIABLE的值是空字符串 报价问题解决:
|
![]() |
2
13
我还没有看到这个问题的解决方案,但很惊讶它没有被普遍使用
|
![]() |
3
12
虽然我会在上一个构建步骤中检查这一点,但您可以在编译时执行此操作。为了简洁起见,使用Boost:
|
![]() |
4
7
迈赫拉德的答案必须扩大,以使其发挥作用。还有他的评论
不正确;要测试未定义的变量,有一个简单的测试
我的完整测试代码(另存为test.c文件):
cpp公司 您可以通过实验查看生成了什么代码:
|
![]() |
5
3
你可以用
这对我来说是个好办法。我要补充的是,这个宏没有文档记录,所以要小心使用。 |
![]() |
6
3
|
![]() |
7
2
我不认为这是可以做到的。尽管如此,我认为没有必要。当你做预处理器的时候
|
![]() |
8
1
您可以使用无需额外宏的hack:
|
![]() |
9
0
|
![]() |
10
0
另一方面,我们通常要检查宏 未定义 ,是 零 :
此方法适用于的任何整数值
请注意,如果您只想检查
|
![]() |
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 7 年前 |
![]() |
user3623498 · 在#if中更改变量时出现问题 7 年前 |
![]() |
einpoklum · 来自#cmakedefine替换的意外结果 7 年前 |
![]() |
Joseph Franciscus · C中预处理器方法的别名++ 7 年前 |
![]() |
stoper · 防止同一宏在多个转换单元中具有不同的定义 7 年前 |
![]() |
СеÑгей · MinGW中预处理器g++的奇怪行为 7 年前 |