上海狐臭微创手术价格:编译预处理

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/08 14:37:20
#include <iostream.h>
//#define a 4
//#define b 3
void main()
{
int a=4,b=3;
#if a>1
cout<<a<<endl;
#else
cout<<b<<endl;
#endif
}
我就是奇怪怎么输出会是3?不是4吗?
能不能解释一下
如果放到外面宏定义时又是输出4呢?
对二楼
如果你把第七行改为a<1时输出又为4,但按你说的还应该输出3才对啊,怎么解释呢?
请教
对三楼
那是我故意注释掉的,我要看看函数里面的情况

很简单啊

#if a>1

a 都 没有#define 怎么可能>1 呢,所以就编译#else 块啊.
要是#define 的话, 就是a>1 呗,这时就编译#if 块呗.

#if 是预处理 只看#define 的, int 的 根本就不识别.

//#define a 4
//#define b 3

很简单,因为你把预定义注释掉了