草庐IT

java - Java中的#ifdef#ifndef

我怀疑是否有办法在Java中创建编译时条件,例如C++中的#ifdef#ifndef。我的问题是有一个用Java编写的算法,我对该算法有不同的运行时间改进。所以我想衡量每次使用改进后我节省了多少时间。现在我有一组boolean变量,用于在运行期间决定应该使用哪些改进,哪些不应该使用。但即使测试这些变量也会影响总运行时间。所以我想找到一种方法来决定在编译期间应该编译和使用程序的哪些部分。有人知道用Java做的方法吗?或者也许有人知道没有这样的方法(它也很有用)。 最佳答案 privatestaticfinalbooleanenable

c++ - ifdef : is "#ifdef A && B" the same as "#if defined(A) && defined(B)"? 中的 bool 值

在C++中,是这样的:#ifdefA&&B同:#ifdefined(A)&&defined(B)?我以为不是,但我无法通过我的编译器(VS2005)找到差异。 最佳答案 它们不一样。第一个不起作用(我在gcc4.4.1中测试过)。错误信息是:test.cc:1:15:warning:extratokensatendof#ifdefdirective如果要检查是否定义了多个事物,请使用第二个。 关于c++-ifdef:is"#ifdefA&&B"thesameas"#ifdefined(A

c++ - #ifdef 与 #if - 作为启用/禁用特定代码部分编译的方法,哪个更好/更安全?

这可能是风格问题,但我们的开发团队中存在一些分歧,我想知道其他人是否对此事有任何想法......基本上,我们有一些调试打印语句,我们在正常开发过程中会关闭这些语句。就个人而言,我更喜欢执行以下操作://----SomeSourceFile.cpp----#defineDEBUG_ENABLED(0)...SomeFunction(){intsomeVariable=5;#if(DEBUG_ENABLED)printf("Debugging:someVariable==%d",someVariable);#endif}不过,有些团队更喜欢以下内容://#defineDEBUG_ENABL

c++ #ifdef Mac OS X 问题

我对C++还很陌生。我目前正在做一个小组项目,我们想让我们的类(class)与实验室计算机(Windows)和我的计算机(MacOSX)兼容。这是我们一直放在文件顶部的内容:#ifdefTARGET_OS_X#include#include#elifdefined_WIN32||defined_WIN64#include#endif我知道这个问题之前有人问过,但我的搜索给了我相互矛盾的答案,例如“_MAC”、“TARGET_MAC_OS”、“MACINTOSH”等。#ifdef语句中当前正确的声明是什么使其与Mac兼容?现在它不工作。谢谢! 最佳答案

c++ #ifdef Mac OS X 问题

我对C++还很陌生。我目前正在做一个小组项目,我们想让我们的类(class)与实验室计算机(Windows)和我的计算机(MacOSX)兼容。这是我们一直放在文件顶部的内容:#ifdefTARGET_OS_X#include#include#elifdefined_WIN32||defined_WIN64#include#endif我知道这个问题之前有人问过,但我的搜索给了我相互矛盾的答案,例如“_MAC”、“TARGET_MAC_OS”、“MACINTOSH”等。#ifdef语句中当前正确的声明是什么使其与Mac兼容?现在它不工作。谢谢! 最佳答案

c++ - 错误 : macro names must be identifiers using #ifdef 0

我有一个用C++编写的应用程序的源代码,我只想用以下方式评论一些东西:#ifdef0...#endif我得到了这个错误error:macronamesmustbeidentifiers为什么会这样? 最佳答案 #ifdef指令用于检查是否定义了预处理器符号。标准(C116.4.2标识符)规定标识符不得以数字开头:identifier:identifier-nondigitidentifieridentifier-nondigitidentifierdigitidentifier-nondigit:nondigituniversal-

c++ - 错误 : macro names must be identifiers using #ifdef 0

我有一个用C++编写的应用程序的源代码,我只想用以下方式评论一些东西:#ifdef0...#endif我得到了这个错误error:macronamesmustbeidentifiers为什么会这样? 最佳答案 #ifdef指令用于检查是否定义了预处理器符号。标准(C116.4.2标识符)规定标识符不得以数字开头:identifier:identifier-nondigitidentifieridentifier-nondigitidentifierdigitidentifier-nondigit:nondigituniversal-

ios - #if 和 #ifdef Objective-C 预处理器宏有什么区别?

如何在build设置中定义预处理器宏,例如IPAD_BUILD和IPHONE_BUILD(以及如何在我的工厂方法中使用它们)?我现在正在使用这些,如果知道后面发生了什么会很酷。 最佳答案 /#if照常工作,如果:#if__IPHONE_OS_VERSION_MAX_ALLOWED>=30200if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad){returnYES;}#endifreturnNO;}/#ifdef表示“如果已定义-某些值或宏”:#ifdefRKL_APPEND_

ios - #if 和 #ifdef Objective-C 预处理器宏有什么区别?

如何在build设置中定义预处理器宏,例如IPAD_BUILD和IPHONE_BUILD(以及如何在我的工厂方法中使用它们)?我现在正在使用这些,如果知道后面发生了什么会很酷。 最佳答案 /#if照常工作,如果:#if__IPHONE_OS_VERSION_MAX_ALLOWED>=30200if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad){returnYES;}#endifreturnNO;}/#ifdef表示“如果已定义-某些值或宏”:#ifdefRKL_APPEND_

ios - #ifdef DEBUG 与 #if DEBUG

在使用编译器指令时,我不清楚以下两个代码片段中哪一个是正确/首选的,以及为什么。似乎我见过的大多数开发人员和开源项目都使用第一种,但我也看到第二种也经常使用。#ifdefDEBUG[selfdoSomethingOnlyWhenDebugging];#endif对比#ifDEBUG[selfdoSomethingOnlyWhenDebugging];#endif以上哪些代码片段更适合仅在调试时运行代码,为什么?我的猜测是,如果DEBUG被定义为TRUE或FALSE,第一个将运行,而第二个将仅在DEBUG定义并设置为TRUE时运行。对吗? 最佳答案