社区
C++ 语言
帖子详情
#if !defined(AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_)
shichaio234
2012-02-29 10:14:54
#if !defined(AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_)
#define AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_ 有没有高手知道这是定义的什么?
...全文
113
8
打赏
收藏
#if !defined(AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_)
#if !defined(AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_) #define AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_ 有没有高手知道这是定义的什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baichi4141
2012-03-01
打赏
举报
回复
根据文件名、建立文件时间等系统参数自动生成的一个名字,对程序员来说无意义
这么复杂就是为了避免重复
这个宏用来避免重复include头文件,仅此而已
#if !defined ABC
#define ABC
// 头文件内容
#endif
shichaio234
2012-03-01
打赏
举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]
相当于
#pragma once
[/Quote]能不能告诉我AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_
是什么意思?
shichaio234
2012-03-01
打赏
举报
回复
[Quote=引用 2 楼 baichi4141 的回复:]
用来避免一个头文件被反复include的预编译命令
[/Quote]
能不能告诉我AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_
是什么意思?
shichaio234
2012-03-01
打赏
举报
回复
[Quote=引用 1 楼 jim_king_2000 的回复:]
这是include guard,老版本的MFC wizard生成的代码就是这个样子的。
[/Quote]
能不能告诉我AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_
是什么意思?
cbzjzsb123
2012-02-29
打赏
举报
回复
如果没有定义AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_
那么就定义AFX_DATA_H__78EDB93E_5BAD_4020_8F02_62FEBB4147D5__INCLUDED_
是为了防止头文件被反复定义
ouyh12345
2012-02-29
打赏
举报
回复
相当于
#pragma once
baichi4141
2012-02-29
打赏
举报
回复
用来避免一个头文件被反复include的预编译命令
Jim_King_2000
2012-02-29
打赏
举报
回复
这是include guard,老版本的MFC wizard生成的代码就是这个样子的。
头文件免费下载
代码: // std
afx
.h :
include
file for standard system
include
files, // or project specific
include
files that are used frequently, but // are changed infrequently // #if !
defined
(
AFX
_STD
AFX
_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__
INCLUDE
D_) #define
AFX
_STD
AFX
_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__
INCLUDE
D_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // TODO: reference additional headers your program requires here //{{
AFX
_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !
defined
(
AFX
_STD
AFX
_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__
INCLUDE
D_)
#if !
defined
(
AFX
_ 后面 一串 数据
#if !
defined
(
AFX
__H__180E70AF_83B5_4CAD_9AF7_950350AB63C7__
INCLUDE
D_) #define
AFX
__H__180E70AF_83B5_4CAD_9AF7_950350AB63C7__
INCLUDE
D_ ...#endif 这是一中常见的防止头文件被重复包含的格式 #ifndef XXX_H__XX #define XXX_H__X
《C深度解析》第二章 C预编译——宏定义、条件编译、头文件包含、特殊预编译关键字
课程内容:(1)回顾c预编译(2)宏定义:无宏体宏、有宏体宏、带参宏、宏定义与复杂表达式。(3)条件编译:#if、#else、#elif #endif、#ifdef和#ifndef、#if与
defined
、条件编译与配置文件(4)一些特殊的预编译关键字与实际应用:
defined
、#error、#line、#与##、#pragma (5)文件包含:是否只能包含.h文件,<>与区别等。
#if
defined
和#if !
defined
(c语言的宏定义)
#if
defined
和#if !
defined
(c语言的宏定义) 因为对于一个大程序而言,我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if
defined
宏正是为这种情况提供了解决方案.举个例子,如下: #define .... #define .... .... ......
#if
defined
(__cplusplus)
由于C++编译器需要支持函数的重载,会改变函数的名称,因此dll的导出函数通常是标准C定义的。这就使得C和C++的互相调用变得很常见。但是有时可能又会直接用C来调用,不想重新写代码,让标准C编写的dll函数定义在C和C++编译器下都能编译通过,通常会使用以下的格式:(这个格式在很多成熟的代码中很常见) #if
defined
(__cplusplus)//只有c++编译器才有这个宏定义。 ext
C++ 语言
64,686
社区成员
250,505
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章