版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年人力资源管理师面试情景应对题库
- 2026年全国新高考2卷数学试卷(含答案及解析)
- 2026人教版一年级数学下册期末模拟测试卷(三套含答案)可直接打印
- 煤矿重大事故隐患判定标准2026版解读
- 初中人教版八年级道德与法治下册全册教学反思(2026春)
- 2026年汽车驾驶员(技师)新版试题及答案
- 2026北京市规划和自然资源委员会所属事业单位招聘30人考试参考题库及答案解析
- 静守初心静待花开:高三下学期班主任带班育人方略与实践思考
- 2026年全国《安全生产月》知识培训试题及答案
- 筑牢安全防线共度平安端午!课件-2024-2025学高中端午节安全教育主题班会
- 业务部费用管理制度
评论
0/150
提交评论