宏定义
不带参数的宏定义
#define PI 3.14
- 宏的名字通常大写
- 只是简单的替换,预处理在编译之前,所以不会检查语法错误
- 作用域:定义开始到程序结束
- 可以使用#undef终止宏定义的作用域
- 宏定义允许嵌套
#undef PI
带参数的宏定义
#define MAX(x, y) ((x) ? (y) : (x) : (y))
- 宏的名字和参数列表中间不允许空格
- 不需要为参数指定类型,不需要分配内存空间
条件编译
#ifdef / #ifndef
#else
#endif
防止头文件的重复编译:
#ifndef _SOMEFILE_H_
#define _SOMEFILE_H_
//一些声明语句
#endif