在C中使用#define没有值
发布时间:2020-12-16 09:52:41 所属栏目:百科 来源:网络整理
导读:如果使用的#define没有值,比如 #define COMMAND_SPI() 它默认值为0吗? 解决方法 不,它评估为零.从字面上看,这个符号一无所获. 但是,一旦你有#define FOO,预处理器条件#ifdef FOO现在将成立. 另请注意,在gcc和可能的其他编译器中,如果在命令行上使用-DFOO定
如果使用的#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,接着是另一个空白.这是因为第一个和第三个表达式评估为虚无,并且中间表达式未展开,因为后面没有(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |