头文件中的一个定义问题

文米 2001-05-17 09:05:00
在每个头文件中,都有以下的定义,不只具体什么含义,请各位大虾指点
#if !defined(AFX_B1DLG_H__AE06B4F3_FE83_4005_99F6_AE2956F93383__INCLUDED_)
#define AFX_B1DLG_H__AE06B4F3_FE83_4005_99F6_AE2956F93383__INCLUDED_




...全文
155 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AttaBoy 2001-10-06
  • 打赏
  • 举报
回复
gz
fiolin 2001-10-06
  • 打赏
  • 举报
回复
同意!!
coma 2001-10-06
  • 打赏
  • 举报
回复
讲这么好,怎么没分?
文米 2001-05-19
  • 打赏
  • 举报
回复
这个宏名字是够怪的,不想c++,里面的宏定义,如_A_h
文米 2001-05-19
  • 打赏
  • 举报
回复
谢谢各位
ginkgoboy 2001-05-17
  • 打赏
  • 举报
回复
楼上的讲的好啊
spirix 2001-05-17
  • 打赏
  • 举报
回复
是为了防止某个头文件被多次的编译,举个例子吧:
比如你有一个头文件 a.h
文件的内容是
#if !define(_A_H_)
#define _A_H_
void a(void )
{
printf("this is message of headfile a!");
}
#endif
如果你在一个工程里面还有其他的两个头文件,b.h ,c.h,并且两个文件中都有#include a.h的包含语句,这时候,a.h就要被编译两次,如果没有
#if !define(_A_H_)
#define _A_H_
。。。。。
#endif
在一个工程中就会出现两个同名的函数C这是不允许的,编译器将会报错,而加上他们后,通过宏编译的控制,该a.h只会被编译一次,就避免了这种情况!
或许你要问为什么 VC中的宏 AFX_B1DLG_H__AE06B4F3_FE83_4005_99F6_AE2956F93383__INCLUDED_ 会这么奇怪,实际上VC是在故意这样做的,为了避免和你要定义的宏同名,VC认为,用户一般不会起这么奇怪的宏名的!
:)

黑白双傻 2001-05-17
  • 打赏
  • 举报
回复
确保头文件定义的内容只会被include一次,
防止多次定义

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧