Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2242839
  • 博文数量: 395
  • 博客积分: 10994
  • 博客等级: 上将
  • 技术积分: 5586
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 19:49
文章存档

2014年(1)

2013年(10)

2012年(74)

2011年(303)

2010年(7)

分类: C/C++

2012-07-14 10:29:53

前几天碰到一个面试题,有一道是这样的:
#define Debug 0
#define Debug1 1

unsigned int a=0;

#ifdef Debug
a++;
#endif

#if Debug1
a *=2;
#endif

printf("a=%d\n",a);


其中我在这个地方迷了,就是这个#ifdef Debug 
因为前面已经定义了#define Debug 0,按常理一般认为这个ifdef不会执行,可是事实是执行了,因为这个地方无论你定义#define Debug 0,或者#define Debug 1效果都是一样的。这个地方意思是是否定义了,而是不管定义为0,或者是1.
阅读(1417) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~