预处理
C语言编译过程分为:预处理、编译、汇编、链接
常用的预处理命令如下表所示。编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。
其中宏定义是最为常用的。
**优点:**代码复用性;提高性能
**缺点:**不可调试(预编译阶段进行了替换);无类型安全检查;可读性差,容易出错。
宏定义的应用举例:
(1)写一个“标准”宏MAX,这个宏输入两个参数并返回较大的一个。
#define MAX(A,B) ((A) >= (B) ? (A) : (B))
//指的注意的是在宏中要小心地把参数用括号括起来,并且整个宏也要用括号括起来,防止替换时出现错误。
将*p++代入宏体,指针p会做两次自增操作
#include <stdio.h>
#define MAX(A,B) ((A) >= (B) ? (A) : (B))
int main()
{
int A[5] = {
1,2,3,4,5}, B = 0, *p;
p = A;
printf("%d\