条件编译(DEBUG思想)2016年7月28日 星期四17:31
#include <stdio.h>
#define DEBUG 0
int main(int argc, const char * argv[]) {
#if DEBUG == 1
char *name = "lxc";
char *pwd = "123";
#else
char *name = NULL;
char *pwd = NULL;
#endif
printf("name = %s\n pwd = %s\n",name,pwd);
// name = (null)
// pwd = (null)
return 0;
/**
预处理指令什么时候执行? 编译之前
变量什么时候定义? 执行了才会定义
注意点:
1.条件编译不能用来判断变量,因为不在同一个声明周期
2.一般情况下,条件编译和宏定义是结合在一起使用的
条件编译和选择结构if的共同点
都可以对给定的条件进行判断,添加满足或者不满足都可以执行特定的代码
条件编译和选择结构if的不同点
1.声明周期不同
if 是运行时执行
#if 是编译之前
2.#if需要一个明确的结束符号 #endif
3.if会将所有的代码都编译到二进制中
#if只会将满足条件的部分编译到二进制中
条件编译的优点
1.缩小应用程序的大小
应用场景
用于调试和发布阶段进行测试
*/
}
#ifdef SCORE // 判断是否定义了后面的宏
printf("SCORE \n");
#endif
#ifndef SCORE //是不是没有定义后面的宏
printf(" NO SCORE \n");
#endif
头文件卫士
在文件.h中为了防止被多次引入C语言中创建.h文件的时候系统会默认生成一个头文件卫视
#ifndef bb_h
#define bb_h
#endif