- 2
- 0
- 约1.75千字
- 约 11页
- 2016-12-15 发布于江苏
- 举报
C语言程序设计 - 第6章 预处理 白 雪 飞baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系Dept. of Elec. Sci. Tech., USTC Fall, 2003 第6章 预 处 理 C语言程序设计 - 第6章 预处理 * 目 录 预处理 宏定义 文件包含 条件编译 C语言程序设计 - 第6章 预处理 * 预处理 (Preprocessor) 预处理 在编译之前对源程序进行“预处理” 预处理命令不是C语句,末尾没有分号 预处理命令不在可执行文件中执行 预处理命令都以#开始 包括宏定义、文件包含、条件编译等 举例 #define MAX 1000 #include stdio.h C语言程序设计 - 第6章 预处理 * 宏(Macro)定义 无参数的宏定义 带参数的宏定义 C语言程序设计 - 第6章 预处理 * 无参数的宏定义 一般形式 #define 标识符 字符串 说明 把源程序中相应标识符予以替换 仅是简单的字符串替换,没有任何语法正确性检查 有效范围从定义处开始,到文件结束,或者由#undef命令终止作用域 行末没有分号,如有分号将会被一起替换 C语言程序设计 - 第6章 预处理 * 无参宏定义举例 #define R 3.0 #define PI 3.1415926 #define L 2*PI*R #define begin { #define end } #define forever for(;;) void main() begin /* { */ printf(L=%f, L); #undef PI /* 取消对PI的宏定义 */ forever; /* for(;;); 无限循环 */ end /* } */ C语言程序设计 - 第6章 预处理 * 带参数的宏定义 一般形式 #define 宏名(参数表) 字符串 说明 宏定义仅是把参数作为字符串做简单替换,而不做任何运算求值和语法检查 宏名与参数表的括号之间不应有空格 应注意参数替换后可能出现的语法错误和意料之外的运算 应在宏定义内容及其中参数两边加上括号 C语言程序设计 - 第6章 预处理 * 带参宏定义举例 #define S1(a,b) a*b #define S2(a,b) ((a)*(b)) #define max(a,b) ((a)(b)?(a):(b)) void main() { int x=3, y=4, i=5, j=6, s, z; s=S1(x+y, x-y); /* s=x+y*x-y; s==11 */ s=S2(x+y, x-y); /* s=((x+y)*(x-y)); s==-7 */ z=max(i++, j++); /* z=((i++)(j++)?(i++):(j++)); */ /* z==7, i==6, j==8 */ } C语言程序设计 - 第6章 预处理 * 文件包含 一般形式 #include filename #include filename 说明 把另一个源文件的全部内容包含进来 预编译后,它们已成为一个文件 头文件的扩展名一般用.h,但并非规定 调用库函数一般使用,也可以使用 调用用户编写的头文件应使用 C语言程序设计 - 第6章 预处理 * 条件编译 条件编译 对某些部分的源程序指定编译的条件 可以减少被编译的语句,减少目标程序的长度,减少运行时间 有利于移植程序,增加程序的灵活性 命令形式 #ifdef...#else...#endif #ifndef...#else...#endif #if...#else...#endif C语言程序设计 - 第6章 预处理 * 结束 The End C语言程序设计 - 第6章 预处理 白 雪 飞baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系Dept. of Elec. Sci. Tech., USTC Fall, 2003
您可能关注的文档
- 中科大1995离散.doc
- 中科大2004 -- 2005 学年第二学期期终考试试卷(2005.06.17)物理化学(上).doc
- 中科大2007工程热力学.doc
- 中科大C语言程序设计7.ppt
- 中科大C语言程序设计9.ppt
- 中科大相对论.ppt
- 中科大管理学真题(1999-2009).doc
- 中科院、北大、北师大.doc
- 中科院半导体.doc
- 中科院环境化学试题1.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)