《C程序设计语言》课程PPT教学课件(讲稿)第九章 预处理命令

第九章预她理命令 →9.1宏定义 →9.2文件包含处理 →9.3条件编译
第九章 预处理命令 9.1 宏定义 9.2 文件包含处理 9.3 条件编译

9.1宏定义 宏定义 用预处理命令# define命令指定的预处理。包括 不带参数和带参数宏定义两种。 不带参数宏定义 用一个指定的标识符代表一个字符串 # define标识符字符串 标识符称为宏名,字符串称为宏体。 在预处理时将该宏名用宏体替换,成为宏展开
9.1 宏定义 宏定义 用预处理命令#define命令指定的预处理。包括 不带参数和带参数宏定义两种。 不带参数宏定义 用一个指定的标识符代表一个字符串. #define 标识符 字符串 标识符称为宏名,字符串称为宏体。 在预处理时将该宏名用宏体替换,成为宏展开

9.1宏定义 说明 为与变量名区别,宏名一般习惯用大写字母表示 使用宏定义可以提高程序的通用性和可读性,易 于修改 预处理时不进行语法检查 #define pi 3.4159 宏定义不是c语句,不必加“;”,若有,则将 起处理 #define pi 3.14159 area=PI*r*r;/米area=3.14159;*米r;
9.1 宏定义 说明 为与变量名区别,宏名一般习惯用大写字母表示. 使用宏定义可以提高程序的通用性和可读性,易 于修改. 预处理时不进行语法检查. #define PI 3.l4l59 宏定义不是c语句,不必加“ ;”,若有,则将一 起处理。 #define PI 3.14159; area=PI*r*r; /* area=3.14159;*r*r;*/

9.1宏定义 宏定义的有效范围为宏定义处# define g98 到文件结束。可以用# undef命令main0 终止宏定义的作用域。 #undef g f10 宏定义时可以引用已经定义的宏名。 程序中用“”括起来的字符串不进行置换 宏定乂只作字符替换,不分配内存空间
9.1 宏定义 宏定义的有效范围为宏定义处 到文件结束。可以用#undef命令 终止宏定义的作用域。 宏定义时可以引用已经定义的宏名。 程序中用“”括起来的字符串不进行置换。 宏定义只作字符替换,不分配内存空间。 #define G 9.8 main() { ……} #undef G f1() {……}

9,1宏定义 带参数宏定义 带参宏定义的格式 # define宏名(参数表)宏体 #define s(a, b) atb area=S(2, 3) /米area=2*3;米 带参宏替换在形式上类似函数,也带有形参,调 用时也进行实参和形参的结合
9.1 宏定义 带参数宏定义 带参宏定义的格式: #define 宏名(参数表) 宏体 #define S(a,b) a*b area=S(2,3); /* area=2*3;*/ 带参宏替换在形式上类似函数,也带有形参,调 用时也进行实参和形参的结合

9,1宏定义 说明 对带参宏定义,宏体及其各个形参应该用圆括 号括起来。如: #define pi 3.1415926 #define s (r) Pi*r*r area=S(atb)/* area=PI*a+b*a+b */ m=1/S(a+b)/*m=1/PI*a+b*a+b*/ #define s(r Pi*(r)*(r) area=s(atb)/ area=PI*(a+b)*(a+b)*/ m=/S(a+b)/米m=1/PI*(a+b)*(a+b)*/ #define s(r(Pi*(r)*(r)) area=S(a+b)/*area=PⅠ*(a+b)米(a+b)米/ m=1/S(a+b)/*m=1/(PI米(a+b)*(a+b)米/
9.1 宏定义 说明 对带参宏定义,宏体及其各个形参应该用圆括 号括起来。 如: #define PI 3.1415926 #define S(r) PI*r*r area=S(a+b) /* area=PI*a+b*a+b */ m=1/S(a+b) /* m=1/PI*a+b*a+b */ #define S(r) PI*(r)*(r) area=S(a+b) /* area=PI*(a+b)*(a+b) */ m=1/S(a+b) /* m=1/PI*(a+b)*(a+b) */ #define S(r) (PI*(r)*(r) ) area=S(a+b) /* area=PI*(a+b)*(a+b) */ m=1/S(a+b) /* m=1/(PI*(a+b)*(a+b)) */

9,1宏定义 宏名与宏体之间以空格相隔,宏名中不能有空 格。例 #define s(r(pi(r)(r) area=S(a)/米area=(r)(PI*(r)米(r))(a)米/ 宏名不能用引号括起来 如:# define“YES”1将不进行宏替换。 同样宏替换中的宏名也不可用引号括起来,如 #define yes 1 printf (yes) 也不能进行宏替换
9.1 宏定义 宏名与宏体之间以空格相隔,宏名中不能有空 格。例: #define S (r) (PI*(r)*(r)) area=S (a) /* area=(r) (PI*(r)*(r))(a) */ 宏名不能用引号括起来。 如:#define “YES” 1将不进行宏替换。 同样宏替换中的宏名也不可用引号括起来,如: #define YES 1 printf(“YES”); 也不能进行宏替换

92文件包含 文件包含是指一个源文件可以将另一个源文件的 的整个内容包含进来 文件包含的格式: # include 系统只到存放C库函数头文件所在的目录中 寻找要包含的文件,成为标准方式。 # include“文件名” 系统首先在用户当前目录中检索,若没找到, 则按标准方式检索
9.2 文件包含 文件包含是指一个源文件可以将另一个源文件的 的整个内容包含进来。 文件包含的格式: #include 系统只到存放C库函数头文件所在的目录中 寻找要包含的文件,成为标准方式。 #include “文件名” 系统首先在用户当前目录中检索,若没找到, 则按标准方式检索

92文件包含 例文件包含举例 powers. h * #define sqr(x)((x)*(x)) #define cube(x)((x)(x)*(x)) #define quad(x)((x)*(x)*(x)*(X) /*ch810,c* #include #included: zhoulpowers h #define maX power 10 void maino int n printf("number It exp2 \t exp t exp4n printf("----t----lt-----t------In") for(n=1; <=MAX POWER; n++) printf( %02dt %3dt%/4d\t %/5d\n", n, sqr(n), cube(n), quad(n)
例 文件包含举例 /* powers.h */ #define sqr(x) ((x)*(x)) #define cube(x) ((x)*(x)*(x)) #define quad(x) ((x)*(x)*(x)*(x)) /*ch8_10.c*/ #include #include "d:\zhou\powers.h" #define MAX_POWER 10 void main() { int n; printf("number\t exp2\t exp3\t exp4\n"); printf("----\t----\t-----\t------\n"); for(n=1;n<=MAX_POWER;n++) printf("%2d\t %3d\t %4d\t %5d\n",n,sqr(n),cube(n),quad(n)); } 9.2 文件包含
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter Functions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 7 Arrays.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 5 Control Flow.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 4 Input and Output.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 3 Data types, Operators and Expressions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of c.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二章 算法 algorithm.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of C(1.2)The feature of C.ppt
- 清华大学计算中心:《计算机程序设计基础》第五章 结构化程序设计概论.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第四章 复合数据结构基础.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第三章 程序控制结构.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第一章 C语言的基本概念(主讲:乔林).ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第二章 基本数据类型及其运算.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第四章 函数和程序结构.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第三章 语句及控制结构.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第二章 数据类型、运算符与表达式.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第一章 程序设计概述.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第十章 位运算.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第五章 预处理命令.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第九章 文件.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第十一章 结构体与共用体.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第十二章 文件.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)典型考题.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第四章 C语言简单程序设计.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业-选择.xls
- 《C程序设计语言》课程PPT教学课件(讲稿)知识点回顾.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业.xls
- 《C程序设计语言》课程PPT教学课件(讲稿)第5章 选择结构程序设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)知识点回顾.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)流程图.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业.xls
- 《C程序设计语言》课程教学资源(习题作业)答案3.rtf
- 《C程序设计语言》课程PPT教学课件(讲稿)知识点回顾——If的使用.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)数据类型复习.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)选择程序举例.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)循环控制.ppt
- 《C程序设计语言》课程教学资源(习题作业)第8次作业(循环结构).rtf
- 《C程序设计》第1章 C语言概述.ppt
- 《C程序设计》第2章 数据类型、运算符与表达式(1 C语言的数据类型 2 常量和变量 3 整型数据 4 实型数据 5 字符型数据).ppt
- 《C程序设计》第2章 数据类型、运算符与表达式——字符型数据.ppt