C语言问题:#if #endif #else是什么意思呀~~

如题,现在有一段程序。

现在这个程序怎么走的,我明白。可是简单的讲讲这个加了#的是什么意思吧。

#include <stdio.h>
#define r 16
#if r==16
void p(int a)
{
printf("%x",a);
}
#else
void p(int a)
{
printf("%d",a);
}
#endif
void main()
{
p(32);
}

#开头的语句,是预编译指令

也就是说,这些语句,在编译之前,就对他们进行了处理

#include <stdio.h> //告诉编译器,要参与编译的文件
#define r 16 //告诉编译器,r就是16
#if r==16 //告诉编译器,r==16的时候,编译下面这段,否则编译else部分的内容
void p(int a)
{
printf("%x",a);
}
#else //告诉编译器,#if的另外一个部分
void p(int a)
{
printf("%d",a);
}
#endif //告诉编译器,#if的结束

void main()
{
p(32);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-08
条件编译啊。。。。。。
第2个回答  2008-04-08
条件编译
相似回答