1、分支结构的if
- 当条件满足的时候就会执行if后面的语句
- 在程序运行的阶段进行判断的
2、条件编译:当条件满足的时候才会编译#if后面的语句
- 条件编译中的条件只能由宏定义和常量组成,不能出现变量
- 编译时候进行判断的
注意点:必须是以#endif结尾
如:
#if week == 1
printf("星期一\n");
#elif week == 2
printf("星期二\n");
#elif week == 3
printf("星期三\n");
#elif week == 4
printf("星期四\n");
#elif week == 5
printf("星期五\n");
#elif week == 6
printf("星期六\n");
#elif week == 7
printf("星期日\n");
#else
printf("药不能停\n");
#endif
}
使用场景:
1、 用于Debug调试,系统中自带的常量DEBUG(程序发布系统自动取消)
如:
//如果定义了某个宏
#ifdef DEBUG
#define Log(formatter,...) printf(formatter,## __VA_ARGS__);
//__VA_ARGS__ 固定写法表示多参数
//## 表示可以不带参数
#else
#define Log(formatter,...)
#endif
2、 判断宏是否存在或者常量是否满足if,然后做一些事情,如:添加一个宏
如:
//判断一个宏定义是否存在
#ifdef 宏名
// 如果定义某个宏编译这里面的语句
#endif
#ifndef 宏名
// 如果没有定义某个会编译这里面的语句
#endif
3、条件编译可以防止头文件的重复包含(不要掌握)
// 这些写在头文件中
#ifndef ___115________me__
// 如果没有包含,则包含
#define ___115________me__