在C语言头文件里我们如何应用#ifndef

来源:互联网 发布:ubuntu创建文件夹 编辑:程序博客网 时间:2024/05/16 16:56
举个例子 我在led.h 头文件里这么写#ifndef __LED_H#define __LED_H.............#endif1 这样写是如何完成防止重复定义功能的2 __LED_H 这个宏定义我可以随便命名吗,还是这个#define后面的名字和 头文件led.h 得名字村子某种命名约束3 在应用头文件中 ifdef 是如何公工作的
答案
  1.  编译器读到#ifndef __LED_H这一行时会检查当前__LED_H这个字符是否已经被宏定义了,如果是,则忽略其下文直到匹配的#endif;如果没有被宏定义,则继续编译其下文。这样当这个头文件第一次被#include时,编译器发现_LED_H这个字符未被宏定义,则编译余下的内容,第一句就将_LED_H这个字符宏定义,则以后#include时,此头文件就不会再被编译了。

  2. __LED_H这个名字可以任意取(其用来编译时区分是否是第一次被#include),但不能跟别的头文件中的定义重复。

  3. !ifdef __LED_H 的意义跟上面的相同。ifdef表示如果定义了某宏就编译下文直到匹配的#endif,跟ifndef类似的条件编译语句(逻辑正好相反)

ifdef这个宏定义可以防止重复定义
但是如何完成的呢
1 我们在头文件。h中写了这句话,
#ifndef __LED_H#define __LED_H.............#endif
如果有多个文件引用了这个.h 文件
这多个文件又包含在同一个文件下。这样我们的ifdef就起作用了。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 海信电视特别卡怎么办 在花呗上被骗了怎么办 西洋杜鹃掉叶子怎么办 苹果iap支付失败怎么办 此项目无法退款怎么办 及贷逾期一天怎么办 快贷逾期一天怎么办 燃气灶开关松了怎么办 厨房插座挨灶台怎么办 天然气灶费电池怎么办 国美东西买贵啦怎么办 饥荒咕咕鸟死了怎么办 收到催天下信息怎么办 对门邻居有白事怎么办 顺丰理赔不合理怎么办 手机店抽奖被骗怎么办 手机店投票被骗怎么办 锤子手机进水了怎么办 锤子手机无法关机怎么办 坚果pro2卡顿怎么办 兴隆破产兴隆卡怎么办 电脑开机键失灵怎么办 网上买冰箱售后怎么办 物流公司损坏了怎么办 白色充电器线脏了怎么办 卷尺缩不回去怎么办 在昆山怎么办电瓶车牌 网购遇到质量问题怎么办 洗衣机外壳坏了怎么办 8元飞享套餐下线怎么办 改光纤后传真机怎么办 网上预约迟到了怎么办 国地税合并局长怎么办? 信用卡申请条件不足怎么办 深户落亲戚房产怎么办准迁证 从深圳迁出户口怎么办 快递未送达签收怎么办 床垫用水洗后怎么办 轿车空调不制冷怎么办 空调氟漏完了怎么办 一窗式比对异常怎么办