首页 » C语言 » #if defined 与#ifdef的区别

#if defined 与#ifdef的区别

原文 http://blog.csdn.net/qwe15954250805/article/details/76555960

2017-08-01 21:20:08阅读(575)

在Linux中,常常使用宏编译的方法来进行条件编译,通过宏的定义与否来选择执行对应的代码。

一般而言,使用的比较频繁的两种方法是

(1)、#if   defined  (XXX)

#endif

(2)、#ifdef

#endif

这两个都可以通过宏开关来控制程序的执行与否,但第一种更加灵活一些,其可以进行多个条件的判断。如下:


# include <stdio.h>


#define AAA
#define BBB
#define CCC


int main()
{
#if defined (AAA)
printf("AAA is defined\n");
#endif


#ifdef BBB
printf("BBB is define\n");
#endif

#if defined (AAA) &&defined(BBB)
printf("AAA and BBB are defined\n");
#endif

return 0;
}

程序的结果如下:

AAA is defined
BBB is define
AAA and BBB are defined

可知,如果条件比较复杂,#if defined 比#ifdef更适合(与之类似的是#if !defined)。

而#if一般要求参数为一定的数值,无法使用宏来判定。


最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹