版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 编译预处理与位运算,10.1 编译预处理 编译预处理:是在编译前由编译系统中的预处理程序对源程序的预处理命令进行加工。 源程序中的预处理命令均以“#”开头,命令末尾不加分号,它们可以写在程序中的任何位置,作用域是从出现位置开始到源程序的结束.,10.1.1 宏定义,宏定义是定义一个标识符来代替一个字符串。 宏定义有不带参数的宏定义和带参数的宏定义两种。 1不带参数的宏定义 定义形式: #define 标识符 字符串 功能:用一个指定的标识符(即名字,称为宏名)来代表一个字符串。 例如:#define PI 3.1415926 说明:(1)与其他标识符相区别,宏名一般用大写字母表示。
2、(2)编译预处理时,将程序中的宏名用字符串代替,这种将宏名替换成字符串的过程称为“宏展开”。 (3)使用宏可以减少程序中重复书写或修改某些字符串的工作量. (4)在程序中出现在双引号中或其他字符串中与宏名相同的字符串,不能作为宏处理。 (5)#define命令的作用范围从定义位置至源程序结束,但可以用#undef终止其作用域。,10.1.1 宏定义,例1:#define PI 3.1415926 main() float l,s,r; scanf(%d, ,main() float l,s,r; scanf(%d, ,例2:#define PI 3.1415926 main() #undef
3、PI fun() ,10.1.1 宏定义,10.1.1 宏定义,(6)宏定义时,可以引用已定义的宏名,编译时层层展开。 例3:#define PI 3.1415926 #define R 3.0 #define L 2*PI*R #define X R+L main() y=2*X; ,main() y=2*3.0+2*3.1415926*3.0; ,(7)宏名是一个常量标识符,不是变量,不分配内存空间。,2带参数的宏定义 定义形式: #define 标识符(参数表)字符串 功能:用指定的带参数的标识符来代表一个字符串。 注意:带参数的宏展开时要用实参字符串替换形参字符串。 例4:#defin
4、e S(x) 2*x*x main() y=S(2+2); ,main() y=2*2+2*2+2; ,注意:展开时用实参字符串2+2替换形参字符串x,2+2是字符串,不能看做表达式,即S不能展开为2 * (2+2) * (2+2)。,10.1.1 宏定义,10.1.2 文件包含,文件包含是一个源程序通过#include命令把另外一个文件的全部内容嵌入到源程序中。 文件包含命令有如下两种格式: #include #include文件名 功能:将指定文件的全部内容放到该命令行所在的位置。 说明:命令#include在搜索文件时只检索C语言编译系统所确定的标准目录,而命令#include文件名在搜
5、索文件时首先对使用包含文件的源程序文件所在的目录进行检索,若没有找到指定的文件,再在标准目录中检索。,10.2 位运算,数据在计算机内部是以二进制补码形式存储的。 1按位与运算符: scanf(%o, ,10.2 位运算,10.3 本章考点,宏定义。 文件包含。 位运算。,10.4 典型试题详解,1有如下程序: #define N 2 #define M N+1 #define NUM 2*M+1 main() int i; for(i=1;i=NUM;i+) printf(%dn,i); 该程序中的for循环执行的次数是_。 正确答案:6(知识点:不带参数的宏定义),2程序中头文件type1
6、.h的内容是: #define N 5 #define M1 N*3 程序如下: #include type1.h #define M2 N*2 main() int i; i=M1+M2; printf(%dn,i); 程序编译后运行的输出结果是_。 正确答案:25(知识点:文件包含、不带参数的宏定义),10.4 典型试题详解,3以下程序的输出结果是_。 #define SQR(X) X*X main() int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(%dn,a); 正确答案:2(知识点:带参数的宏定义),10.4 典型试题详解,4有以下程序: main() int x=3,y=2,z=1; printf(%d n,x/y 程序运行后的输出结果是_。 A)3 B)2C)-1D)0 正确答案:D(知识点:位运算),10.4 典型试题详解,5有以下程序: main() unsigned a,b,c; a=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新疆维吾尔自治区乌鲁木齐市中小学教师招聘笔试参考题库及答案详解
- 2026年湖北省随州市法检系统书记员招聘考试模拟试题及答案详解
- 2025年武汉市汉阳区街道办人员招聘考试试题及答案详解
- 2026年铁岭市银州区中小学教师招聘考试备考题库及答案详解
- 2026年湖北省荆门市街道办人员招聘笔试备考试题及答案详解
- 2026年云南省玉溪市街道办人员招聘笔试备考题库及答案详解
- 2025年天津市西青区街道办人员招聘考试试题及答案详解
- 2026年海南省海口市法检系统书记员招聘考试参考试题及答案详解
- 初升高完美衔接教材 英语教学 句子成分与结构
- 2026年百色市右江区街道办人员招聘笔试备考试题及答案详解
- 卡西姆国际集装箱码头工程(中交四航院)
- 卫生事业管理第13章
- GB/T 18281.3-2024医疗保健产品灭菌生物指示物第3部分:湿热灭菌用生物指示物
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 舞蹈基础知识考试题库150题(含答案)
- (高清版)DZT 0342-2020 矿坑涌水量预测计算规程
- 四川建筑安全员A证考试题库
- 数字贸易环境下的跨境数据治理机制
- 锂硫电池市场调研报告
- 注塑上下模培训-
- GB/T 32119-2023海洋钢制构筑物复层矿脂包覆腐蚀控制技术
评论
0/150
提交评论