C语言的编译预处理命令主要包括:宏定义、文件包含和条件编译。预处理命令均以“#”开始,命令的结尾没有分号,每条预处理命令必须占用单独一行。 1.宏定义 (1) 无参宏定义 无参宏定义的一般形式如下: #define 宏名 字符序列 如果源程序中使用了宏定义,编译预处理过程中,自动把源程序中出现的所有“宏名”替换为“字符序列”,这是一个纯文本替换,也称为宏替换。 例如下面定义了3个无参宏名: #define PI 3.14 #define R 10 #define AREA PI R R (2) 有参宏定义 有参宏定义的一般形式如下: #define 宏名(参数表) 字符序列 有参宏定义在进行宏替换时,源程序出现宏名的地方都使用字符序列替换,替换时使用宏引用中的实参去替换宏定义中的形参。 例如,如下定义了一个有参的宏名。 #define MUL(a,b) (a)*(b) 源程序中可以使用如下语句使用有参的宏: int x=3, y=4, z; z=MUL(x,y); 注意:通常需要在有参宏定义时,字符序列中参数要加上圆括号,以免进行宏替换时出现错误,如z=MUL(x+3,y-1) 10,进行宏替换后的语句为:z=x+3 y-1*10;。 2、文件包含 文件包含也是一种编译预处理命令,其作用是把被包含的文件的内容全部引入到使用文件包含命令的源程序文件中。文件包含命令有以下2种形式: