C语言—预处理器3:是否被定义(#ifdef、#ifndef)和嵌套指令

本文介绍了C语言预处理器中的#ifdef和#ifndef指令,用于检查宏是否被定义,并探讨了预处理指令的嵌套使用。通过示例代码展示如何在预处理器中实现条件编译,同时提到了#ifdef与#endif间的可选注释符号"OPTION"的使用。

1.是否被定义

#if defined(symbol)
#ifdef symbol 
#if !defined(symbol)
#ifndef symbol 

  上面没对语句都是等价的,但是 #if 形式功能更强大。因为常量表达式可能包含额外的条件,如下面所示

#if X > 0 || defined(ABC) && defined(DEF)

2.嵌套指令
预编译处理指令还可以嵌套,如下面代码所示:

#if defined(OS_UNIX)
	#ifdef OPTION1
		unix_version_of_option1();
	#endif	
	#ifdef OPTION2
		unix_version_of_option2();
	#endif
#elif defined(OS_WINDOWS)
	#ifdef OPTION2
		unix_version_of_option2();
	#endif /* OPTION2 */
#endif

  有些编译器允许类似“/* OPTION */”的符号出现在 #endif 中,它的作用和注释差不多。不过这个符号对实际代码不会产生任何作用,去掉也没事。但最好的做法还是写上。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值