
第11章编译预处理命令2025年4月4日
2025年4月4日 第 11 章 编译预处理命令

第11章 编译预处理命令目录宏定义述文件包含
第11章 编译预处理命令 目 录 宏定义述 1 3 文件包含

第11章编译预处理命令宏定义述预处理命令是在编译之前,由预处理程序进行处理的一组命令。预处理命令均以开头,命令未尾不加分号。如#definePl3.1415926#include
第11章 编译预处理命令 预处理命令是在编译之前,由预处理 程序进行处理的一组命令。 预处理命令均以#开头,命令末 尾不加分号。 如 #define PI 3.1415926 #include 宏定义述 1

第11章编译预处理命令宏定义述一、不带参数的宏定义格式:宏名替换文本#define如#definePl3.1415926功能:系统预处理时,将用替换文本替换程序中的所有宏名(字符串中的宏名除外)
第11章 编译预处理命令 宏定义述 1 一、不带参数的宏定义 格式: #define 宏名 替换文本 如 #define PI 3.1415926 功能: 系统预处理时,将用替换文本替换程序中的 所有宏名(字符串中的宏名除外)

第11章 编译预处理命令例8.1宏定义举例。#include #define PI 3.14159mainOfloat s,r,v;scanf("%f",&r);s-PI*r*r;v=4.0/3*PI*r*r*rprintf("%f%fln",s,v);
第11章 编译预处理命令 例8.1 宏定义举例。 #include #define PI 3.14159 main() { float s,r,v; scanf("%f",&r); s=PI*r*r; v=4.0/3*PI*r*r*r; printf("%f %f\n",s,v); }

第11章编译预处理命令带参数的宏定义格式:替换文本宏名(形参表)#define如##define S(x,y) x*y功能:先用替换文本替换程序中的宏名,再用实参替换形参。宏替换是一种机械死板的替换,不能在替换文本中随意添加括号
第11章 编译预处理命令 二、带参数的宏定义 格式: #define 宏名(形参表) 替换文本 如 #define S(x,y) x*y 功能: 先用替换文本替换程序中的宏名,再用实参 替换形参。 宏替换是一种机械死板的替换,不能在替 换文本中随意添加括号

第11章 编译预处理命令#include #define S(x,y) x*ymain()1float a,b,c;a=20; b=10;c=S(a+b,a-b);printf("c=%fln",c);}替换过程为:S(a+b,a-b)→x*y → a+b*a-b20+10*20-10→210
第11章 编译预处理命令 #include #define S(x,y) x*y main( ) { float a,b,c; a=20; b=10; c=S(a+b,a-b); printf("c=%f\n",c);} 替换过程为: S(a+b,a-b)→x*y → a+b*a-b →20+10*20-10 →210

第11章编译预处理命令将每个形参及整个替换文本用圆括号括起来。例#include #defineS(x,y)((x)*(y))main()float a,b,c;(a=20;b=10;c=S(a+b,a-b);printf("c=%fin",c);
第11章 编译预处理命令 将每个形参及整个替换文本用圆括号括起来。 例 #include #define S(x,y) ((x)*(y)) main( ) { float a,b,c; a=20; b=10; c=S(a+b,a-b); printf("c=%f\n",c); }

第11章编译预处理命令文件包含命令格式:1、<文件名》#include或"文件名”#include2、功能:系统预处理时,将用被包含文件的内容取代该include命令。如#include<stdio.h)
第11章 编译预处理命令 文件包含命令 1、格式: #include 或 #include "文件名" 2、功能: 系统预处理时,将用被包含文件的内容 取代该include命令 。 如 #include

第11章 编译预处理命令文件包含命令file2.c#include"file2.c"Bfile2.cfilel.cfilel.c
第11章 编译预处理命令 #include “file2.c” file1.c file2.c file1.c file2.c A B A 文件包含命令