版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、授课老师: 第7章 编译预处理 本章要点 7.1 文件包含处理 7.2 宏定义 7.3 条件编译 本章要点本章要点 编译预处理的概念编译预处理的概念 文件包含命令的使用方法文件包含命令的使用方法 宏定义的概念宏定义的概念 宏命令的使用方法宏命令的使用方法 条件编译的概念条件编译的概念 文件包含处理是指一个源程序文件可以将另外一个源程序文件的全部内容包含进来,即将另外的一个文件嵌入到本文件之中。 C+提供了文件包含命令#include来实现文件包含处理,其一般格式为: #include 文件名 或:#include 功能:功能:根据文件名,把指定文件的全部内容读到当前处理的文件中,作为当前文件的
2、一个组成部分,即把文件的内容替代该#include命令行。 #include stdafx.h #include stdio.h #include iostream.h #include math.h void main() float a, b, p, l, s;coutab;p=sqrt(a*a+b*b); /程序接下页 l=2*(a+b);s=a*b;cout长方形对角线=pendl;cout长方形周长=lendl;cout长方形面积=sendl;getchar(); 程序执行后显示: 输入长方形的边长:3 4 长方形对角线=5 长方形周长=14 长方形面积=12 7.2.17.2.1不
3、带参数的宏定义不带参数的宏定义 C语言和C+语言允许程序员在编写代码时,用一个符号代替一串字符,这样,在使用时比较简洁,其意义也比较清楚。因此,宏定义其实就是用一些比较容易理解或具有物理意义的符号代替另一些数据或文本。 不带参数的宏定义命令的一般格式为: #define 标识符 字符串 宏定义中包括三个部分,每个部分用空格隔开。 7.2.17.2.1不带参数的宏定义不带参数的宏定义 C语言和C+语言允许程序员在编写代码时,用一个符号代替一串字符,这样,在使用时比较简洁,其意义也比较清楚。因此,宏定义其实就是用一些比较容易理解或具有物理意义的符号代替另一些数据或文本。 不带参数的宏定义命令的一般
4、格式为: #define 标识符 字符串 宏定义中包括三个部分,每个部分用空格隔开。 #define A a #define B b #include stdafx.h #include stdio.h #include iostream.h void main() int A;int B;A=100;coutAendl;getchar(); 程序执行结果如下: 100 (1)宏名一般习惯用大写字母表示,以便与变量名相区别。 (2)使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量。 (3)宏定义是用宏名代替一个字符串,也就是做简单的置换,不是赋值语句,因此不做语法检查。 (4)
5、宏定义命令不是C+语句,不必在行末加分号。 (5)#define命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本源文件结束。 (6)如果提前结束宏名的使用,在程序中可以使用#undefine命令。指令#undefine与#define的作用刚好相反,#undefine用于删除原有的宏定义,该指令使用格式如下: #undefine 宏名 例如,下面的程序取消宏定义: #define PI 3.14159 定义宏名PI表示圆周率 void main() float c; 定义实型变量c c=2*PI*9.0; 计算半径为9.0的圆的周长 #undefine PI 取消宏PI的定义 (7
6、)使用宏定义可以嵌套,即在后面定义的宏中可以使用前面已定义的宏。 (8)对程序中用双引号括起来的字符串内的字符,即使与宏名相同,也不进行置换。 (9)宏定义是专门用于预处理命令的一个专用名词,它与定义变量的含义不同,只作字符替换,不分配内存空间 #include stdafx.h #include stdio.h #include iostream.h #define PI 3.14159 #define R 10.0 #define L 2*PI*R #define S PI*R*R #define V 4.0/3.0*PI*R*R*R /程序接下页 void main() coutL=Le
7、ndl;coutS=Sendl;coutV=Vendl;getchar(); 程序执行后输出: L=62.8318 S=314.159 V=4188.79 /本程序补充说明见下页 对程序中用双引号括起来的字符串内的字符,即使与宏名相同,也不进行替换。例如上例中在coutS=Sendl;语句中有两个S,前一个S在双引号内,与宏名S相同,但不会被替换;后一个S在双引号外,将被替换。 在同一个作用域内,同一个宏名不能定义两次或两次以上; 宏定义与定义变量的含义不同,只作字符替换,不分配内存空间。 带参数的宏定义命令的一般格式为: #define标识符(参数表) 字符串 字符串中包含括号内的参数,称为形参,以后在程序中它们将被实参替换。 功能:将带形参的字符串定义为一个带形参的宏名。在程序中如果有带实参的宏名,则按#define命令行中指定的字符串进行替换,并用实参替换形参,这被称为“宏调用”。 #include stdafx.h #include stdio.h #include iostream.h #define SUM(a,b) a+b void main() int x=2, y=7, s;s=SUM(x+1,y-1);couts=sendl;getchar(); void main(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 223-2026人工智能智能图像信号处理系统技术规范
- 山西省太原市小店区2026-2027学年四年级上学期语文第一单元测评卷(含答案)
- 河北省邯郸市广平县2026届六年级下学期7月期末考试语文试卷(有答案)
- 7《兼爱》同步练习(含答案)统编版高中语文选择性必修上册2
- 2026老年人脑卒中防治科普专题培训课件
- 骨科护理技术操作
- 2026新学期学生季节交替谨防感冒专题培训课件
- 骨肿瘤专题知识宣讲培训
- 2026年人教版高中物理必修四第5章光学练习题
- 2025-2026年气候变化应对技术与方法习题
- 化验室危险化学品培训
- 围手术期血糖管理的专家共识
- 2026年石油化工设备检维修市场调研报告
- 2025年顺丰月结合同合同范本分享
- 【高中语文】《春江花月夜》课件+统编版高二语文选择性必修上册
- 2025-2026学年华中师大版(2024)小学体育与健康一年级全一册《应急电话学会打》教学设计
- 甘肃专职消防管理办法
- 《青少年户外运动技能等级划分及评定》
- 2025年宜都市总工会公开招聘乡镇工会协理员3人考试备考试题及答案解析
- (完整)营养指导员理论知识考核试题库(含答案)
- 医院危化品安全知识培训课件
评论
0/150
提交评论