C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预处理功能编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。
#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。
无参宏的宏名后不带参数,其定义的一般形式为:#define 标识符 字符串
如:#define MAX 1000
注意:可用#undef命令终止宏定义的作用域。字符串" "中永远不包含宏。宏定义不分配内存,变量定义分配内存。
带参宏定义的一般形式为:#define 宏名(形参表) 字符串
在带参宏定义中,形参不分配内存单元,因此不必作类型定义。在带参宏中只是符号代换,不存在值传递问题。
经典例子:
//求最大值和最小值:
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
//将一个字母转换为大写或小写:
#define UPCASE(c) (((c) >= 'a' &a