预处理命令
一、宏定义
定义符号常量:
#define PI 3.1415926
#define MAX_N 10000
定义傻瓜表达式:
#define MAX(a, b) (a) > (b) ? (a) : (b)
#define S(a, b) a * b
定义代码块:
#define P(a) { \
printf("%d\n", a); \
}
" \ " 表示连接符,一行代码最好不要超过 80 个字符,超过的部分可以利用连接符
宏所做的事情只是一个简单的替换,不参与运算。
二、预定义宏
宏 | 说明 |
---|---|
_DATA_ | 日期:M mm dd yyyy |
_TIME_ | 时间: hh : mm : ss |
_LINE_ | 行号 |
_FILE_ | 文件名 |
_func_ | 函数名/非标准 |
_FUNC_ | 函数名/非标准 |
_PRETTY_FUNCTION_ | 更详细的函数信息/非标准 |
预定义的时间宏,是在每一次编译后的时间。
非标准表示不一定在所有环境都被支持。
三、条件式编译
函数 | 说明 |
---|---|
#ifdef DEBUG | 是否定义了 DEBUG 宏 |
#ifndef DEBUG | 是否没定义 DUBUG 宏 |
#if MAX_N == 5 | 宏 MAX_N 是否等于5 |
#elif MAX_N == 4 | 否则宏 MAX_N 是否等于 4 |
#else | |
#endif |