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

在每个头文件的开头有这些东西:   
  #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[],并把初值赋为当前源文件路径名而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值