预编译之条件编译指令#if /#ifdef/#if defined

1)#if

#if 条件表达式

程序段1

#endif

如果条件表达式为TRUE,则执行程序段1。

如:

#define LEN_MAX (3)
#define LenMax (6)
#if LEN_MAX < LenMax
#undef LEN_MAX
#define LEN_MAX LenMax
#endif

注意事项:
如果是下面这种使用方式,
#if TEST_DEFINE
#endif

则一定要 提前定义 TEST_DEFINE
#define TEST_DEFINE (1)
或者
#define TEST_DEFINE (0)

这里需要关心 宏定义 的Value。

其他使用方法:
#if (LEN_MAX < 4) || (LenMax >7)
#endif

也可以如下使用,
#define TEST_DEFINE_8  (0)
#ifdef TEST_DEFINE_8
程序段4  //程序段4 一定会执行,这与TEST_DEFINE_8 的Value 无关
#endif

2)#ifdef

#ifdef 标志符1(比如TEST_DEFINE)

程序段2

#endif


如果定义  标志符1(TEST_DEFINE),则执行 程序段2。

这里只管检测是否有 标识符1 的宏定义,不管它的Value 是什么。

注意事项:

#define TEST_DEFINE// 可以不定义,此标志符

#ifdef TEST_DEFINE

printf("Define!\n");

#else

printf("not define!\n");

#endif

其他使用方法:

#ifndef TEST_DEFINE_1

#undef TEST_DEFINE_2

#endif

3)#if defined

#if defined(标识符2)

程序段3

#endif

这与下面完全等价

#ifdef 标识符2

程序段3

#endif


其他使用方法:

#if defined(TEST_DEFINE_3) || defined(TEST_DEFINE_4)

#undef TEST_DEFINE_5

#endif


#if !defined(TEST_DEFINE_6) || defined(TEST_DEFINE_7)

#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值