OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2798|回复: 4

#ifndef的应用

[复制链接]

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2015-7-29
在线时间
33 小时
发表于 2015-7-30 10:06:42 | 显示全部楼层 |阅读模式
5金钱
//-----a.h-----   
#ifndef A_H_   
#define A_H_   
void fun();   
#endif   
  
预编译阶段, 当第一次执行该段代码时, 由于我们并没有宏定义A_H_, 所以会执行#define A_H_以及void fun()两条语句, 第二次执行该段代码时因为#ifndef A_H_为假就直接走到#endif后面. 

各位大侠,小弟不明白的是,如果程序这样写,意思是不是在#ifndef与#endif中的#define A_H_以及void fun()这两条语句只执行了一次。也就是说第一次由于没有宏定义A_H_, 所以会执行#define A_H_以及void fun()两条语句,第二次执行该段代码时因为#ifndef A_H_为假,就直接走到#endif后面。那么第三次,第四次直到第N次,#ifndef A_H_一直为假,那是不是一直是直接走到#endif后面,而不再执行#ifndef与#endif中的#define A_H_以及void fun()这两条语句了。

最佳答案

查看完整内容[请看2#楼]

这样就是为了防止头文件重复包含呀
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-16
在线时间
3 小时
发表于 2015-7-30 10:06:43 | 显示全部楼层
这样就是为了防止头文件重复包含呀
回复

使用道具 举报

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2015-7-29
在线时间
33 小时
 楼主| 发表于 2015-7-30 10:34:04 | 显示全部楼层
那意思是不是,头文件只需要引入一次就可以了?
回复

使用道具 举报

1

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-16
在线时间
3 小时
发表于 2015-7-30 11:17:47 | 显示全部楼层
回复【3楼】xianyu861109:
---------------------------------
是的
回复

使用道具 举报

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2015-7-29
在线时间
33 小时
 楼主| 发表于 2015-7-31 09:09:53 | 显示全部楼层
多谢!多谢!多谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 08:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表