草庐IT

FINAL_DEFINE

全部标签

c++ - "#define new DEBUG_NEW"和 "#undef THIS_FILE"等真的有必要吗?

当您创建新的MFC应用程序时,向导会在几乎每个CPP文件中创建以下代码块:#ifdef_DEBUG#definenewDEBUG_NEW#endif有时它还会添加:#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;如果这段代码是多余的,我想从我的CPP文件中删除它。我在VS2008上使用带有C++/CLI的MFC应用程序。从CPP中删除这段代码后,我尝试在Debug中运行,它似乎工作正常。"new"变量工作正常,没有泄漏,ASSERT对话框显示正确的文件名并跳转到有问题的行。谁能告诉我它的作用以及删除它是否安全? 最

c++ - 在没有 #define 的情况下捕获 __LINE__ 和 __FILE__

尝试确定以下C风格代码的“现代”实现:#definelogError(...)log(__FILE__,__LINE__,__VA_ARGS__)是否可以使用不依赖于#define的可变参数模板或类似的东西来捕获它?所需用例:logError("Ohno!Anerroroccurred!");__FILE__和__LINE__是在后台捕获的,但反射(reflect)了调用logError的文件名和行号。 最佳答案 宏确实是您唯一的选择,至少在std::source_location之前是这样。使其成为标准并满足您的愿望。

c++ - 在 C++ 中使用 "#define"的替代方案?为什么会被人嫌弃?

我开发C++还不到一年,但在那段时间里,我听到很多人谈论#define有多么可怕。现在,我意识到它是由预处理器而不是编译器解释的,因此无法调试,但这真的那么糟糕吗?这是一个示例(未经测试的代码,但您已经了解了大致的想法):#defineVERSION"1.2"#includeclassFoo{public:stringgetVersion(){return"Thecurrentversionis"+VERSION;}};为什么这段代码不好?是否有使用#define的替代方法? 最佳答案 Whyisthisthiscodebad?因为

c++ - #define值的大小

如果一个值被定义为#defineM_4040大小是否与short(2字节)相同,还是与char(1字节)或int(4字节)?大小取决于您是32位还是64位? 最佳答案 #define没有大小,因为它不是类型,而是对C++代码的纯文本替换。#define是一个预处理指令,它甚至在您的代码开始编译之前运行。替换后C++代码的大小与您那里的C++表达式或代码的大小无关。例如,如果您使用L作为后缀,例如102L,那么它会被视为long,否则没有后缀,只是一个int。所以在x86和x64上可能是4个字节,但这取决于编译器。也许C++标准的In

c++ - #define far, #define near Windef.h

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Isthereacleanwaytopreventwindows.hfromcreatinganear&farmacro?Windef.h中这两个定义有什么意义?#definefar/*nothing*/#definenear/*nothing*/我知道它与nearandfar有关指针和它们不再使用的事实,但是#undef它们是否安全,所以我可以使用near和far作为我的代码中的函数和变量名称?或者,我是否应该简单地避免它并且从不使用near和far作为标识符?

windows - 将 JBoss 7.1.1.Final 作为 Windows 服务运行

将JBoss7作为Windows服务运行的正确说明是什么?配置:WindowsServer200864位,Java版本“1.6.0_26”64位,JBoss7.1.1.Final。我找不到任何关于如何执行此操作的官方手册。谢谢。PS:类似的问题已在stackoverflow上关闭-HowtoconfigureJboss7(v7.1.0)torunasawindowsservice 最佳答案 好的,我发现最相关的来源是这两个链接:-Jboss7.1.1asWindowsservice,-RunningJBossAS7asaWindow

c++ - 看似毫无意义的#define of function

我遇到过一些代码:BOOLCBlahClass::SomeFunction(DWORD*pdw){RETURN_FALSE_IF_FILE_DOESNT_EXIST//therestofthecodemakessense...//...}除了我对这条线有一点疑问外,我看到的一切都很有道理RETURN_FALSE_IF_FILE_DOESNT_EXIST我搜索了这个字符串并找到了#define:#defineRETURN_FALSE_IF_FILE_DOESNT_EXIST\if(FALSE==DoesFileExist())returnFALSE;我的问题是……到底是什么?像这样制作#

mysql - 我应该为 Spring 3.1.0、Hibernate 4.0.1.Final 和 MySQL 5.1 使用什么合并数据源?

我正在使用Spring3.1.0.RELEASE、Hibernate4.0.1.Final和MySQL5.1。我应该使用的合并数据源是什么?我目前正在使用(来自应用程序上下文文件的片段)...com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/myprojmyprojpassword但这不是池化数据源,在每次调用时创建JDBC连接。我曾经有这个Hibernate配置(hibernate.cfg.xml)...com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/myprojmyprojpasswo

ios - #define 在 Objective-C 的头文件中

我有一个Global.h看起来像#defineNUMBERX21在AppDelegate.h中,我包含了Global.h文件。在AppDelegate.m中,我包含了AppDelegate.h文件。但是在AppDelegate.m中我无法访问NUMBERX变量。ERROR:Useofundeclaredindentifier'NUMBERX'.如果我在AppDelegate.h中定义NUMBERX,它就可以工作,但我想在我想使用NUMBERX变量的所有其他头文件中只包含头文件(Global.h)。我该如何解决? 最佳答案 如果您使用

ios - 如何为我的两个不同目标指定#define 命令

我有一个项目要分成两个目标。最初的单目标项目使用了一些定义命令,但是我现在需要这些值根据我正在构建的目标而有所不同。正确的做法是什么?我应该使用在AppDelegate上声明的NStrings吗?或者我可以在设置#defines时使用#if语句吗?任何帮助,非常感谢。 最佳答案 一种方法是这样的:#ifdefined(MON_TARGET_A)#defineMON_TARGET_NAME"AppA"#elifdefined(MON_TARGET_B)#defineMON_TARGET_NAME"AppB"#else#error"wh