define
define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。
所谓预处理是指在进行编译之前所作的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
不带参数的宏:1
2
3
int arr[LENGTH] = {0}; // 表示定义了一个长度为 10 的整形数组
在预处理阶段,会把 LENGTH
替换成 10,所以 10 后面不能有 ;
。
带参数的宏:
C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
int x, y, max;
printf("input two numbers: ");
scanf("%d%d", &x, &y);
max = MAX(x, y); // 这里在预处理完之后替换为 max = (x > y ? x : y);
printf("max=%d\n", max);
return 0;
}