第十一章预处理
第十一章 预处理
111宏定义 无参宏定义 ■所谓预处理是指在进行编译的第一遍扫描 (词法扫描和语法分析)之前所做的工作 ■预处理是C语言的一个重要功能,它由预 处理程序负责完成。当对一个源文件进行 编译时,系统将自动引用预处理程序对源 程序中的预处理部分作处理,处理完毕自 动进入对源程序的编译。 C语言提供了多种预处理功能,如宏定义 文件包含、条件编译等。 第六章基本数据类型
第六章 基本数据类型 ◼ 所谓预处理是指在进行编译的第一遍扫描 (词法扫描和语法分析)之前所做的工作。 ◼ 预处理是C语言的一个重要功能,它由预 处理程序负责完成。当对一个源文件进行 编译时,系统将自动引用预处理程序对源 程序中的预处理部分作处理,处理完毕自 动进入对源程序的编译。 ◼ C语言提供了多种预处理功能,如宏定义、 文件包含、条件编译等。 11.1 宏定义 一、无参宏定义
111宏定义 、无参宏定义 ■在C语言源程序中允许用一个标识符来表示 个字符串,称为“宏”。被定义为“宏”的标 识符称为“宏名”。 ■在编译预处理时,对程序中所有出现的“宏 名”,都用宏定义中的字符串去代换,这称为 “宏代换”或“宏展开” ■宏定义是由源程序中的宏定义命令完成的。宏 代换是由预处理程序自动完成的。 第六章基本数据类型
第六章 基本数据类型 ◼ 在C语言源程序中允许用一个标识符来表示一 个字符串,称为“宏”。被定义为“宏”的标 识符称为“宏名” 。 ◼ 在编译预处理时,对程序中所有出现的“宏 名”,都用宏定义中的字符串去代换,这称为 “宏代换”或“宏展开” 。 ◼ 宏定义是由源程序中的宏定义命令完成的。宏 代换是由预处理程序自动完成的。 11.1 宏定义 一、无参宏定义
111宏定义 无参宏定义 定义形式:# define标识符字符串 其中的“#”表示这是一条预处理命令。凡是以 “#”开头的均为预处理命令。 “ define”为宏定义命令。 “标识符”为所定义的宏名。“字符串”可以 是常数、表达式、格式串等 如:# define m(yy+3y) 定义M表达式(y*y+3y) 第六章基本数据类型
第六章 基本数据类型 11.1 宏定义 一、无参宏定义 ◼ 定义形式:#define 标识符 字符串 ◼ 其中的“#”表示这是一条预处理命令。凡是以 “#”开头的均为预处理命令。 ◼ “define”为宏定义命令。 ◼ “标识符”为所定义的宏名。“字符串”可以 是常数、表达式、格式串等。 如:#define M (y*y+3*y) 定义M表达式(y*y+3*y)
111宏定义 无参宏定义 「例11 #define M(y*y+3*y) maint i int s, y printf( input a number: ) scanf(%d", &y); s=3*M+4*M+5*M; printf(s=%d\n",S); 第六章基本数据类型
第六章 基本数据类型 [例11.1] #define M (y*y+3*y) main( ) { int s,y; printf("input a number:"); scanf("%d",&y); s=3*M+4*M+5*M; printf("s=%d\n",s); } 11.1 宏定义 一、无参宏定义