人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第15章 编译预处理

第15章 编铎预处理 7
第15章 编译预处理

151概述 152宏定义 153文件包含 154条件编译 7
15.1 概 述 15.2 宏 定 义 15.3 文 件 包 含 15.4 条 件 编 译

151概述 预处理功能由预处理命令组成,这些命 令在进行编译功能(包括词法分析、语法分 析、代码生成和优化等)之前进行处理,故 称为“编译预处理”。预处理后的程序再进 行编译、连接,最后形成计算机可以执行的 机器语言程序。 7
15.1 概 述 预处理功能由预处理命令组成,这些命 令在进行编译功能(包括词法分析、语法分 析、代码生成和优化等)之前进行处理,故 称为“编译预处理” 。预处理后的程序再进 行编译、连接,最后形成计算机可以执行的 机器语言程序

C语言提供的编译预处理功能有以下3种: (1)宏定义; (2)文件包含; (3)条件编译。 这些功能分别用宏定义命令、文件包含 命令、条件编译命令来实现。这些预处理命 令不属于C语言中真正的语句,为了与一般C 语言语句相区别,形式上都以“#”开头,预 处理命令后面也不加分号。 7
C语言提供的编译预处理功能有以下3种: (1)宏定义; (2)文件包含; (3)条件编译。 这些功能分别用宏定义命令、文件包含 命令、条件编译命令来实现。这些预处理命 令不属于C语言中真正的语句,为了与一般C 语言语句相区别,形式上都以“#”开头,预 处理命令后面也不加分号

152宏定义 1521不带参数的宏定义 1.不带参数的宏定义 不带参数的宏定义的一般定义形式如下:买 define标识符字符序列 7
15.2 宏 定 义 15.2.1 不带参数的宏定义 1.不带参数的宏定义 不带参数的宏定义的一般定义形式如下: #define标识符 字符序列

例15.1输入半径,求圆的周长、面积和体积。 #define pl 3.1415926 maino file oat,s, rvi printf("input radius scanf("%f", &r); 1=2.0*PIr; s= Padre V=4.0/3.0*PIr*rxr; printf("=%10.4fns=%10.4fnv=%10.4fn",ls,v); 7
例15.1 输入半径,求圆的周长、面积和体积。 #define PI 3.1415926 main() { float l,s,r,v; printf("input radius:"); scanf("%f",&r); l = 2.0*PI*r; s = PI*r*r; v = 4.0/3.0*PI*r*r*r; printf("l=%10.4f\ns=%10.4f\nv=%10.4f\n",l,s,v); }

2.终止宏定义命令 终止宏定义命令的一般形式如下: # undef标识符 undef是终止宏定义的特定字,其作用是从 该命令开始,该标识符(宏名)不再代表相应 的字符序列,即该标识符的作用范围到此处结 束 7
2.终止宏定义命令 终止宏定义命令的一般形式如下: #undef 标识符 undef是终止宏定义的特定字,其作用是从 该命令开始,该标识符(宏名)不再代表相应 的字符序列,即该标识符的作用范围到此处结 束

例如,以下程序段: #define p 100 maino int aPl,b, c, ne/取消宏P,在以下的函数中P不再代表0 int sum(int xIl,int n) 7
例如,以下程序段: #define P 100 main() { int a[P],b,c; ┋ } #undef P /* 取消宏P,在以下的函数中P不再代表100*/ int sum(int x[],int n) { ┋ }

例152输出格式定义为宏的示例。 #define pr printf #define nl int #define macro "%d " #define Macro macro nl #define macro2 macro macron #define macros macroMacromacro nl #define macro4 macro macro macro macron #define s %s maint int a bcd: char stringl="ChINa" a=1;b=2;c=3;d=4 PR(MACROl, a) PR(MACRO2, a, b); PR(MACRO3, a, b, c) PR(MACRO4, a, b, c, d) 7 PR(S,String);
例15.2 输出格式定义为宏的示例。 #definePR printf #define NL "\n" #defineMACRO "%d " #defineMACRO1 MACRO NL #defineMACRO2 MACRO MACRO NL #defineMACRO3 MACRO MACRO MACRO NL #defineMACRO4 MACRO MACRO MACRO MACRO NL #define S "%s" main() { int a,b,c,d; char string[] = "CHINA"; a = 1; b = 2; c = 3; d = 4; PR(MACRO1,a); PR(MACRO2,a,b); PR(MACRO3,a,b,c); PR(MACRO4,a,b,c,d); PR(S,string); }

程序运行结果为: 12 123 1234 CHINA 7
程序运行结果为: 1 1 2 1 2 3 1 2 3 4 CHINA
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第13章 中断和位运算.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第12章 文件.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第11章 结构体、联合体与枚举类型.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第10章 指针.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第1章 计算机基础知识.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第十章 信息系统安全与社会责任.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第九章 软件开发与信息处理技术.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第八章 Internet与Intranet.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第七章 计算机网络基础.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第六章 演示文稿制作基础.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第五章 表格处理基础.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第四章 文字处理基础.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第三章 操作系统基础.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第二章 数据的表示与运算.ppt
- 湖南科学技术出版社:高等教育21世纪课程《大学计算机基础》课程教学资源(教材PPT)第一章 计算机系统基础(张慈珍).ppt
- 《计算机系统安全》课程PPT教学课件:第十三章 TLS(SSL)协议.ppt
- 《计算机系统安全》课程PPT教学课件:第十二章 IP安全.ppt
- 《计算机系统安全》课程PPT教学课件:第十一章 入侵检测系统.ppt
- 《计算机系统安全》课程PPT教学课件:第十章 常用攻击手段(3/3)病毒的防治及应急处理.ppt
- 《计算机系统安全》课程PPT教学课件:第十章 常用攻击手段(2/3).ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第2章 程序设计基础知识.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第3章 C语言概述.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第4章 数据类型及表达式.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第5章 顺序结构程序设计.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第6章 选择结构程序设计.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第7章 循环结构程序设计.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第8章 函数.ppt
- 人民邮电出版社:高等学校教材《C程序设计》课程教学资源(PPT课件)第9章 数组.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第一章 数据结构基础概论.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第二章 线性表.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第三章 栈和队列.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第四章 串和数组.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第五章 树和二叉树.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第六章 图.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第七章 查找.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第八章 排序.ppt
- 人民邮电出版社:高职高专现代信息技术系列教材《数据结构》课程电子教案(PPT课件讲稿)第九章 文件.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt