- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C09预处理
第九章 编译预处理 1.常见的编译预处理命令 文件包含 宏定义 条件编译 这些命令以符号#开头,尾部不能加分号,一行不得写 一条以上的编译预处理命令 2.作用:将源程序经编译生成目标文件前,对源程序进行预加工,可提高程序的开发效率 文件包含 用预处 理命令#include命令实现 “文件包含”预处理命令的功能:在编译源程序前,用包含文件的内容置换该预处理命令 一般形式: #include “包含文件名” 或 #include 包含文件名 在C语言处理系统所提供的包含文件一般以“.h”为文件后缀 一个#include命令只能指定一个被包含文件 常用包含文件与相应的标准库函数 ctype.h-- 字符处理函数 math.h-- 数学函数 stdio.h-- 标准输入/输出函数 stdlib.h-- 常用函数库 string.h-- 字符串处理函数 在编制由多个源程序文件组成的较大程 序时,也可以用文件包含预处理命令 宏定义 1.一般形式: #define 宏名 宏体 例: #define PI 3.1415926 #define N 10 其中:宏名为标识符,宏体为一段文本 2.功能:在预处理时,将程序中、该命令后所有与宏名相同的文本用宏体置换 说明: 1)宏名一般习惯用大写字母表示,以与变量名相区别 2)宏展开只是进行简单的置换,不作语法检查 3)宏定义的宏体中,可以出现已定义的宏名 4)一行写不下,在行末加字符“\” 5)宏名的有效范围为定义命令之后到本源文件结束 6)一个宏名只能被定义一次,否则出错,被认为是重复定义。 7)对出现在字符串常量中的宏名不作宏替换 带参数的宏定义 1) 格式 #define 宏名 (形参列表) 宏体 2) 功能 在编译预处理时,将程序中、该命令后所有与宏名相同的文本用宏体置换 置换时宏体中的形参要用相应的实参置换 例: #define S(a,b) a*b ... area=S(3,2); ... 赋值语句展开为 area=3*2; 第九章 预处理命令 #include “file2.c” file1.c file2.c B A A B file1.c 源文件 prg1.c #includestdio.h #include“prg1_1.c” #include“prg1_2.c” void main() { printf(“%d\n”,g1(7)); printf(“%d\n”,g2(7)); } 源文件 prg1_1.c int g1(int k) { int s=0, i=1; for(;i=k;i++) s+=i;….. return s; } 源文件prg1_2.c void g2(int m) {int s=0, i=1; for( ;i=m;i++) s+=i*i ;….. return s; ….. } #include “文件名” 与 #include 文件名 的区别 用 “ ” 时,系统先在用户当前目录中查找,如果没有,再到库函数中查找。 用 时,系统直接到库函数所在的目录中检索文件。 注 意 #include stdio.h #define PR printf #define CR PR(\n) #define CR2 CR;CR void main() { float max,min,x,y; scanf(%f%f,x,y); max=min=x; 分别输入2个数,求最大值、最小值以及它们的差。 例 printf(\n) if(xy) min=y; else max=y; PR(max=%f,max); CR; PR(min=%f,min); CR2; PR(CR=%f,max-min); CR; } …… printf(max=%f,max); printf(\n); printf(min=%f,min); printf(\n); printf(\n); printf (CR=%f,max-min); printf(\n); …… #define PI 3.14 #define S( r ) PI*r*r void main( ) { float a , area ; a=1.0 ; area=S(a) ; pr
您可能关注的文档
- 旧系统停开车方案.doc
- VB程序设计第3版第14章.ppt
- 演示文稿1食品中的有机物.ppt
- 高职毕业设计改革初探.pdf
- 美国大学奖学金信息、种类以及申请.doc
- 社会主义新农村建设对我国当前经济刺激计划的重要性分析.doc
- 石油化工检维修资质评审约请操作指南.pdf
- 寿命和可靠性测试资料大全.doc
- HP-BCS考试题库.docx
- 项目1 企业物流管理概论.ppt
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)