Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5946902
  • 博文数量: 680
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 11839
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(680)

分类: C/C++

2016-01-25 17:43:05

网友分享于:2013-02-11  浏览:195次
#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掉来确保宏的正常。
阅读(2723) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~