第8章编译预处理 本章学习目标 预处理命令的使用可以改进程序设计环 境,提高编程效率,使程序具有可移植性。 本章将详细讲解宏的定义和使用及条件编 译,通过本章的学习,读者应该掌握以下 内容: ■ 宏定义 ■ 条件编译
第8章 编译预处理 本章学习目标 预处理命令的使用可以改进程序设计环 境,提高编程效率,使程序具有可移植性。 本章将详细讲解宏的定义和使用及条件编 译,通过本章的学习,读者应该掌握以下 内容: ◼ 宏定义 ◼ 条件编译
8.1宏定义 8.11相关知识 宏定义的作用是用标识符来代表一串字符,相当于给 一串字符命名。 8.1.2程序范例 程序8-l:使用#undef终止宏定义。 #define PI 3.14159 #include <stdio.h> mainO {
8.1 宏定义 8.1.1 相关知识 宏定义的作用是用标识符来代表一串字符,相当于给 一串字符命名。 8.1.2 程序范例 程序8-1:使用#undef终止宏定义。 #define PI 3.14159 #include <stdio.h> main() {
printf("main:%f",PI); func(); } #undef PI /*终止宏定义*/ func() { printf("func:%of",PI); /*认识的符号名PI* return;
printf("main:%f",PI); func(); } #undef PI /﹡终止宏定义﹡/ func() { printf("func:%f",PI); /﹡认识的符号名PI﹡/ return; }
这个程序由于在func(函数前,通过#undef PI终止了宏名 PI的作用域,而func(函数又使用了宏名PI,因而是错误 的。去掉#undef PI程序就是正确的了。 8.1.3知识归纳 1.C语言的宏定义格式 (1)无参宏定义。 无参宏定义一般格式为: #define标识符一串字符 标识符被定义为代表一串字符的宏名。例如:
这个程序由于在func()函数前,通过#undef PI终止了宏名 PI的作用域,而func()函数又使用了宏名PI,因而是错误 的。去掉 #undef PI程序就是正确的了。 8.1.3 知识归纳 1.C语言的宏定义格式 (1)无参宏定义。 无参宏定义一般格式为: #define 标识符 一串字符 标识符被定义为代表一串字符的宏名。例如:
#define E 2.71828 这里的E就是宏名,它代表一串字符2.71828。该宏名在编译 预处理时被置换成宏定义中的2.71828,这个置换过程称为 宏展开。 宏定义命令应按以下规则正确使用: 1)#号与define,之间一般不留空格,但宏名左右两边必须至 少用一个空格分隔。 2)宏名习惯上采用大写字母表示,以与变量名相区别,但 也可用小写字母
#define E 2.71828 这里的E就是宏名,它代表一串字符2.71828。该宏名在编译 预处理时被置换成宏定义中的2.71828,这个置换过程称为 宏展开。 宏定义命令应按以下规则正确使用: 1)#号与define之间一般不留空格,但宏名左右两边必须至 少用一个空格分隔。 2)宏名习惯上采用大写字母表示,以与变量名相区别,但 也可用小写字母