gpt4 book ai didi

c - 在 C 中使用没有值的#define

转载 作者:太空狗 更新时间:2023-10-29 15:24:12 25 4
gpt4 key购买 nike

如果 #define 没有值,比如

#define COMMAND_SPI()

默认取值为0吗?

最佳答案

不,它的计算结果为空。从字面上看,该符号被替换为空。

但是,一旦您拥有 #define FOO,预处理器条件 #ifdef FOO 现在将为真。

另请注意,在 gcc 和其他可能的编译器中,如果您在命令行上使用 -DFOO 定义一个宏,其计算结果为 1 默认情况下。


由于 OP 更新了他的问题以引用类似函数的宏,让我们考虑一个小例子。

#define FOO
#define BAR()


FOO
BAR
BAR()

这不是有效的 C 程序,但预处理器不关心。如果我用 gcc -E Input.c 编译它,我会得到一个空白,然后是 BAR,然后是另一个空白。这是因为第一个和第三个表达式的计算结果为空,中间的表达式没有扩展,因为它后面没有 ()

关于c - 在 C 中使用没有值的#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24195123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com