



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于宏的作用域1. 宏没有可见域。 如果说有,那就是从本文件(包括被包含的文件)中,该宏定义处开始,至文件的尾部或取消宏(#undef)为止。2. 考虑一种特殊情况: 一个宏定义,如果写在结构体之内,即使与结构体之外的宏定义名字重复了最多是编译警告。可是如果不在结构体之内,名字重复可肯定是error。(未证实,可以做实验,而且可以把两处的宏定义成不同的值,会是什么情况?) 定义在结构体之内的宏在结构体内可以隐藏定义在结构体之外定义的宏,如果都在结构体之外定义,那么就是定义了两个相同的宏,而一个在内,一个在外,则结构体内只看到内部定义的宏,而结构体外只看到外部定义的宏,跟变量的隐藏类似。 宏的处理是在编译的预处理阶段完成的。预处理器根本就不认识什么结构体,在C语言编译器编译这个C文件中的结构体时,这个define语句已经不存在了。相应的,用到这个宏的地方,宏本身也已经替换成宏的值(这个宏展开)。大家可以用gcc -E命令来只做预处理而不编译,看看出来后的文件。 至于为什么在结构体里头#define,是因为这个宏一般用于定义该结构体里头的标志位变量的可能的值,和结构体的这个变量密切相关。放在一起从逻辑上比较容易理解。今天看到一段代码,里面有个结构体的定义中还包含了常量的宏定义,以前没有见过,感觉很奇怪,不知道进行预处理时,预处理会做何处理,因此想请大家来看看,这样做有什么含义,为什么不把这些定义放在结构体定义的外部呢?比如typedef struct aaa.#define STATUS_1 0X02#define STATUS_2 0X04#define STATUS_1 0X08.跟放在外面一样不过这几个宏只在本结构体内使用,代码读起来比较方便我开始也怀疑作用域的问题,看来这不成问题了!综上:是否该宏定义与放在外部是等同的,编译预处理器同样在内存中为每一个定义存储一个常量,而程序中各个部分都能毫无分别的使用该定义呢?而这样写的目的只是在开发过程中便于程序员理解该定义的逻辑意义.Top回复人: jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) ( ) 信誉:101 2005-10-13 9:30:51 得分: 0也许把 没有很注意这个问题哦 自己也没有这样用过 呵呵Top回复人: lengxiao_wang() ( ) 信誉:100 2005-10-13 13:39:23 得分: 0补充一下:宏的作用域的问题可以使用#undef/#endif 对定义即可。但是有一点你得注意,不能再函数体内定义宏。Top回复人: snowbirdfly(好好学习好好动手) ( ) 信誉:100 2005-10-13 14:16:28 得分: 0个人感觉就是便于阅读程序,容易理解Top回复人: DiabloWalkOnTheEarth(WorldOfWg( 狗城是个烂代理 ) ( ) 信誉:97 2005-10-13 14:32:29 得分: 0谁说不能在函数体内定义宏, 只要喜欢, 什么地方定义宏根本就木关系. 宏本来就不是 语言的一部分, 预处理器也根本不会知道宏定义是在结构内还是结构外, 函数内还是函数外.Top回复人: bailingke(大钊) ( ) 信誉:100 2005-10-13 14:50:27 得分: 0编译器根本不知道有什么宏,编译器单元中只有宏定义后面的数字,跟作用域有什么关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点攻克青岛版8年级数学下册期末测试卷附答案详解(能力提升)
- 2025内蒙古事业单位招聘报考指南笔试备考及完整答案详解一套
- 教师招聘之《幼儿教师招聘》过关检测附参考答案详解(模拟题)
- 教师招聘之《小学教师招聘》考试押题密卷附参考答案详解【基础题】
- 教师招聘之《小学教师招聘》试题(得分题)含答案详解【培优】
- 2025江西吉安市青原区司法局招聘2人考试模拟试题及答案解析
- 2025江苏宿城区高层次紧缺急需专业人才招聘12人笔试备考试题及答案解析
- 2025年能源行业储能技术多元化发展模式与商业模式报告
- 合肥市产业结构调整对税收收入的影响:基于多维度视角的剖析
- 2025年《砥砺前行筑梦未来》骨干教师培训心得体会
- 从洞见到生意阿里健康消费趋势报告
- 四年级数学(四则混合运算)计算题专项练习与答案
- 2024年全国职业院校技能大赛中职(数字产品检测与维护赛项)考试题库(含答案)
- 专利联合申请及利益分配协议(2024版)
- 新改版苏教版六年级上册科学全册知识点复习资料
- 城市供热管网抢修与维护工程技术规程
- CJ/T 113-2015 燃气取暖器 标准
- DB2104∕T 0011-2022 地理标志产品 清原龙胆
- DL-T-5759-2017配电系统电气装置安装工程施工及验收规范
- 2024年辽宁石化职业技术学院单招职业技能测试题库附答案
- 开学季饮品店促销方案(2篇)
评论
0/150
提交评论