您的位置:首页 > 编程语言 > C语言/C++

C语言基础:C语言宏定义(3) - 条件编译

2015-01-10 21:34 281 查看
上一节我们讲解了带参数和不带参数的宏定义, 这次我们来讲解条件编译, 什么是条件编译呢? 我们来看看吧

下面我们来看看例子:

#include <stdio.h>

int main()
{
int a = 10;

if (a == 10)
{
printf("a是10\n");
}
else if(a == 5)
{

}
else
{

}

return 0;
}

上面这种其实就是条件编译, 但这种条件编译有一个问题, 在编译的时候, 编译器不会选择性编译, 而是全部都编译进去, 再来判断条件, 下面我们来看看宏定义的条件编译:

#include <stdio.h>

#define A 10

int main()
{
#if (A==10)
printf("a是10\n");
#elif (A==5)
printf("a是5\n");
#else
printf("a是其他\n");
#endif
return 0;
}宏定义的条件编译只能用于宏定义, 不能用于变量, 而且, 一旦宏定义满足其中一个条件, 那么就只会编译这一句代码, 而其他的条件就不会参与编译, 还有就是在写完条件编译之后, 一定一定要加上#endif, 否则就和main函数少了一个大括号一样, 会出错.

其他的用法, 比如:

#if define A
code;
#endif意思是, 如果定义了这个宏, 那么就执行code.

#if !define A
code;
#endif
意思是, 如果没有定义这个宏, 那么就执行code.

还有#ifdef和#ifndef和上面两种用法是一致, 这里就不多说了~~

好了, 这次我们就讲到这里, 下次我们继续~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: