#undef的用处

#undef的用处
在一些linux程序中,大部分都有一个config.h文件 
在文件中经常会见到如下的宏 

/*   Define   if   /dev/poll   is   available   */ 
#undef   HAVE_DEVPOLL 

按照宏的意思是说,如果系统中有/dev/poll就定义HAVE_DEVPOLL 
那为什么用#undef呢?

------解决方案--------------------
取消先前定义的宏变量 
------解决方案--------------------
如果你想定义这个宏那就#define X 
如果你不想让你已经#define X的宏在其他其他地方由于引入了这个包含宏的.h文件而引起一些编译问题,那你就#undef X掉,就这么简单。 
举个简单的例子。 
有1.c,11.h,12.h三个文件 
其中在11.h中定义了#define X extern 
x int a; 
而在12.h中你又定义了#define X int 
x b; 
而在1.c中同时包含了这2个头文件,那就会引起一些问题,此时你必须把其中一个或者这两个都#undef掉来确保宏的正常。

转载于:https://www.cnblogs.com/air-of-code/p/3508188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值