嵌入式编程互联网科技

#ifdef和#if defined的区别

2017-09-08  本文已影响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。

上一篇 下一篇

猜你喜欢

热点阅读