c语言编译预处理全解ppt课件.ppt
《c语言编译预处理全解ppt课件.ppt》由会员分享,可在线阅读,更多相关《c语言编译预处理全解ppt课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、C语言程序设计,第8章 编译预处理,问题:实际生活中,为了更好地处理一些事件或数据,会对其提前进行设定和准备,如:,用代表圆周率3.14为避免重复,对已有的实行“拿来主义”。,ANSI C标准规定可以在源程序中加入一些“预处理命令” ,以改进程序设计环境,提高编程效率。,引子,本章重点,第8章 编译预处理,本章难点,宏定义命令 条件编译命令 文件包含命令,带参宏定义 条件编译,编译预处理,作用:对源程序编译之前做一些处理,生成扩展C源程序种类宏定义 #define文件包含 #include条件编译 #if-#else-#endif等格式:“#”开头占单独书写行语句尾不加分号,8.1,8.2,8
2、.3,宏定义,条件编译,文件包含,第8章 编译预处理,如 if(x=YES) printf(“correct!n”); else if (x=NO) printf(“error!n”);展开后: if(x=1) printf(“correct!n”); else if (x=0) printf(“error!n”);,宏定义的分类无参数宏定义一般形式: #define 标识符 替换文本功能:用指定标识符(宏名)代替替换文本(宏体),宏展开:预编译时,用宏体替换宏名-不作语法检查,如 #define YES 1 #define NO 0 #define PI 3.1415926 #define
3、OUT printf(“Hello,World”);,宏体可缺省,表示宏名定义过或取消宏体,定义位置:任意(一般在函数外面)作用域:从定义命令到文件结束#undef可终止宏名作用域 格式: #undef 标识符,宏定义可嵌套,不能递归,例 #define MAX MAX+10 (),引号中的内容与宏名相同也不置换,例 #define PI 3.14159 printf(“2*PI=%fn”,PI*2);宏展开:printf(“2*PI=%fn”,3.14159*2);,宏定义中使用必要的括号(),例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LE
4、NGTH*2;宏展开:var= 80+40 *2;,8.1 宏定义,例8.1 用不带参数的宏定义计算s=3*(y*y+3*y)+4*(y*y+3*y)+5*(y*y+3*y),#define M (y*y+3*y)main() int s,y; printf(Please input a number: ); scanf(%d,运行情况如下:Please input a number: 4s=336,算法分析:单在计算式子中出现了三个(y*y+3*y),为减少书写量,可使用宏定义。,带参数宏定义一般形式: #define 宏名(参数表) 替换文本,例 #define S (r) PI*r*r相
5、当于定义了不带参宏S,代表字符串“(r) PI*r*r”,宏展开:形参用实参换,其它字符保留宏体及各形参外一般应加括号(),例 #define S(a,b) a*b . area=S(3,2);宏展开: area=3*2;,不能加空格,例 #define POWER(x) x*x x=4; y=6; z=POWER(x+y);宏展开:z=x+y*x+y;一般写成: #define POWER(x) (x)*(x)宏展开: z=(x+y)*(x+y);,8.1 宏定义,#define MAX(x,y) (x)(y)?(x):(y) main() int x,y,max; printf(input
6、 two numbers(x,y): ); scanf(%d,%d,例8.4 用带参宏定义求两数中的大者。,运行情况如下:input two numbers(x,y): 5,6max=6,例8.5 一个宏定义代表多条语句。,#define SSSV(s1,s2,s3,v) s1=l*w; s2=l*h; s3=w*h; v=w*l*h;main() int l=3,w=4,h=5,sa,sb,sc,vv; SSSV(sa,sb,sc,vv); printf(sa=%dnsb=%dnsc=%dnvv=%dn,sa,sb,sc,vv);,运行情况如下:sa=12sb=15sc=20vv=60,带参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编译 预处理 ppt 课件
链接地址:https://www.31ppt.com/p-1375864.html