您的位置:首页 > 编程语言

VC创建新文件时自动添加代码含义

2010-05-21 15:53 489 查看
在每个头文件的开头有这些东西:
#if !defined(AFX_MAINDLG_H__7FFD2FC7_8C06_11D6_B7CA_0050BA40CCBD__INCLUDED_)
#define AFX_MAINDLG_H__7FFD2FC7_8C06_11D6_B7CA_0050BA40CCBD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

意思如下:

1、
#if !defined(AFX_MAINDLG_H__7FFD2FC7_8C06_11D6_B7CA_0050BA40CCBD__INCLUDED_)
#define AFX_MAINDLG_H__7FFD2FC7_8C06_11D6_B7CA_0050BA40CCBD__INCLUDED_
// 文件内容
#endif

只是将符号AFX_MAINDLG_H__7FFD2FC7_8C06_11D6_B7CA_0050BA40CCBD__INCLUDED_与该头文件捆绑起来而已。如果此次编译包含过此头文件,该符号肯定定义过了,文件内容就不被编译,如果没有,就编译该文件内容。
2、
#pragma once
相同,也是使该文件在一次编译过程中只编译一次。参考MSDN"#pragma"
(#if _MSC_VER > 1000...#endif 是判断当前VC版本是否支持)
3、
#ifdef _DEBUG
#define new DEBUG_NEW
是MFC提供的调试用new算符,提供内存泄漏监测等等。参看:
void* AFX_CDECL operator new(size_t nSize, LPCSTR lpszFileName, int nLine);
#define DEBUG_NEW new(THIS_FILE, __LINE__)
4、
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
标准C++中,__FILE__,__LINE__是两个预定义宏,分别表示当前源文件路径名和行号,比如执行printf("file=%s,line=%d",__FILE__,__LINE__);试试看。
这两句就是定义了一个static char 数组THIS_FILE[],并把初值赋为当前源文件路径名而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐