(C语言)定义宏 以防止重复包含此头文件 这句话是什么意思?? 40

 我来答
金色潜鸟
2013-05-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5664万
展开全部
当1个C语言程序由 多个 源程序文件 组成时,由于每个 源程序文件 都有 #include <...>
#include "...h", 最终它们可能形成交叉 包含 和 重复包含 现象 而造成错误。

为了避免这种情况发生,可以 采用 定义宏 的方法 把各个头文件 包起来。

编译器 在正式编译的开始,现处理 宏 -- 也就是“预编译命令".

用 宏(#号开始的行) 把 头文件内容 包起来:
#ifndef _HEADER_One_H_ // 意思是:宏开始行,如果还没有定义 _HEADER_One_H_ 则 进入,否则退出

#define _HEADER_One_H_ //定义 _HEADER_One_H_//

header1.h
头文件内容

#endif // 宏结束行
_whales
2013-05-16 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:501万
展开全部
1,防止类型和常量的多次定义;
2,防止内联函数或宏重复定义
3,防止反复编译同一头文件的内容
因为一个头文件可以被很多文件包含,如果不止一个其他头文件,已经包含了某个头文件,当同时使用这两个头文件里的内容时(即同一.c或.cpp先后包含这两个头文件,那么就会出现同一头文件,被包含两次以上的情况,如果不写头文件的保护代码,那么那个公用头文件里的类型定义,常量定义,宏定义,以及内联函数和模板类,模板函数就会出现重复定义的错误!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
angelhubin
2013-05-15 · 超过11用户采纳过TA的回答
知道答主
回答量:43
采纳率:100%
帮助的人:19.8万
展开全部
因为在编译的过程中是会链接你所引用到的头文件(.h文件),你在多个C文件里同时包含同一个.h文件系统就会报错,所以在每个C文件里加一句条件编译的语句,这样有利于防止重复包含的错误!不懂的话可以追问!希望可以帮助到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云贺拨哲4T
2013-05-15 · 超过16用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:15.8万
展开全部
如果头文件被包含于多个.c文件中,若头文件中包含全局变量的定义或者声明,很容易造成重复定义,导致编译无法通过,编译器报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
索贝尔上尉
2013-05-15 · TA获得超过3318个赞
知道大有可为答主
回答量:1837
采纳率:66%
帮助的人:1791万
展开全部
使用
#pragma once
或者使用
#ifndef _XXX_H_
#define _XXX_H_
//header
#endif
编写头文件,以防止头文件被多次包含
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式