第九讲预处理文件结构体等
- 格式:ppt
- 大小:237.50 KB
- 文档页数:25
C/C++程序设计第9 章编译预处理计算机学院C/C++程序设计课程组C/C++程序设计第1 章主要内容C语言有三种预处理命令,分别是宏定义、文件包含和条件编译。
本章主要介绍宏定义与引用、文件包含处理和条件编译命令。
C/C++程序设计9.1 宏定义所谓“宏”就是将一个标识符定义成一个字符串符,完成定义的命令称为“宏定义”或预处理命令,其中,“标识符”称为“宏名”;当定义了宏名后,在源程序中就可以“引用宏”。
带有宏的程序,源程序开始编译前,系统将会把源程序清单中所引用的宏名替换成对应的一串字符,然后再编译源程序。
替换的过程称为“宏替换”,也称为“宏展开”。
9.1.1 不带参数的宏定义#define 宏名字符串关于宏定义注意以下几点:(1)字符串不带双引号。
(2)宏名的前后应有空格,以便准确的辨认宏名。
(3)C预处理命令都是以换行符(\n)结尾的,即每条C预处理命令都占用一行;本命令不是语句,其后不要跟分号(;)。
(4)在字符串中如果出现运算符,要注意替换后的结果,通常可以在合适的位置上加括号。
C/C++程序设计【例9.1】求园的周长、面积和球的体积。
#include <stdio.h>#define PI 3.14159//定义宏名PI为3.14159 void main( ) {float l,s,r,v;printf("input redius:\n" );scanf("%f",&r);l=2.0*PI*r;s=P I*r*r;v=3.0/4*PI*r*r*r; // 宏展开后为:v=3.0/4*3.14159*r*r*r printf("l=%10.4f\ns=%10.4f\nv=%10.4f\n",l,s,v);}(5) 宏定义也有定义域,它的定义域是从开始定义处到本程序文件的结尾。
所以一般都将宏定义放在源程序开头。