头文件里经常出现的这种语句是什么意思

比如说我的头文件叫stdint.h,那么在开头就会有这一句话#ifndef__STDINT_H_#define__STDINT_H_... 比如说我的头文件叫stdint.h,那么在开头就会有这一句话
#ifndef __STDINT_H_
#define __STDINT_H_
展开
 我来答
晴空森林
2011-04-27 · TA获得超过3039个赞
知道小有建树答主
回答量:312
采纳率:57%
帮助的人:178万
展开全部
第一句:如果没有 定义过 __STDINT_H_ 就接着执行下面的内容。否则跳过下面所有的内容。

第二句,只有当没有定义过__STDINT_H_才会执行。这句就会定义__STDINT_H_。这就意味着:从此以后,这个stdint.h 再也不会执行了(只会执行这一遍)。

这样做是为了方便以后的编程,任何源程序都可以在前面加入
#include <stdint.h>
而不用担心次序和有多少文件加入了这个头。因为:只会有一个文件将这个头文件执行一遍,剩下的都会直接跳过去。(如果没有这两个命令,重复执行头文件编译的时候就会有错误!无法通过!)

希望你能满意!对了,后面还要有 #endif,跟前面的#ifdef对应的。

看到楼上没回答你的追问,我回答一下:
1,__STDINT_H_ 后面没有东西,就是说只声明定义了这个宏,但没有给它任何的内容。因为前面一句只要判断是否定义,而不用看它的内容。当然,你想加上任何的内容都可以,完全不影响。
2,__STDINT_H_ 这么写完全是习惯。很多人还喜欢写成 __STDINT_H__ 或者STDINT_H。
chiconysun
2011-04-27 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2599万
展开全部
条件编译命令,用于防止重复包含
#ifndef 的意思是如果没有定义后面的宏名
下面是就定义宏名
头文件最后应该还有一句:
#endif
追问
定义后面的宏名有什么用呢? 一般define语句应该后面跟两个参数啊,比如说
#define unsigned int uint
现在这里只是写#define __STDINT_H_,后面怎么就没东西了?
还有,STDINT前面有两条下划线,这有什么特殊含义吗?
追答
下面的已经回答了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式