有几宏不明白! 请高手帮忙!
1. 这里为什么还有new
#ifdef _DEBUG_
#define new DEBUG_NEW
2. #pragma once 用来做什么的?
问题点数:20、回复次数:3Top
1 楼tjshif(tjshif)回复于 2006-05-01 10:20:38 得分 10
#define new DEBUG_NEW
帮助查找内存错误。通常使用new运算符来从堆上分配。在Debug模式下,DEBUG_NEW为它分配的每个对象记录文件名和行号。然后,在用户使用CMemoryState::DumpAllObjectSince成员函数时,每个以DEBUG_NEW分配的对象分配的地方显示出文件名和行号。 为了使用DEBUG_NEW,应在用户的资源文件中插入以下指令: #define new DEBUG_NEW 一旦用户插入本指令,预处理程序将在使用new的地方插入DEBUG_NEW,而MFC作其余的工作。但用户编译自己的程序的一个发行版时,DEBUG_NEW便进行简单的new操作,而且不产生文件名和行号消息。
#pragma once
保证只编译一次
类似与
#ifndef adf_H_
#define adf_H_
代码
#endif
Top
2 楼lei001(太极)回复于 2006-05-01 10:27:41 得分 10
#pragma once和#ifdef _DEBUG_
都是避免这个宏被重复定义的Top
3 楼atgjplh(永远的C/C++(unix/liunx))回复于 2006-05-01 16:16:17 得分 0
谢谢Top




