#ifdef和#if defined的区别

作者: 罗蓁蓁 | 来源:发表于2017-09-08 08:41 被阅读72次

#ifdef和#if defined的区别

#ifdef和#if defined他们都可以用来判断单个宏是否被定义,所以常常在这种情况,我常常使用#ifdef。也因为如此,导致我忽略了#if defined的存在。

凡事总有例外,当我在移植429总线的时候,我看到了以下代码:

#if defined(SM429_LABEL) && (0 != SM429_LABEL)

这个代码,不仅仅只是判断单个宏是否被定义,而是还有更复杂的条件判断等,以此来组成复杂的预编译条件时,#ifdef是不可行的,这时候便是#if defined闪亮登场的时候了!

因此区别就很明显了

#ifdef是#if defined的功能简化版,只是判断单个宏是否被定义时可用#ifdef,其它复杂条件都得用#if defined。

相关文章

网友评论

    本文标题:#ifdef和#if defined的区别

    本文链接:https://www.haomeiwen.com/subject/dhqijxtx.html