Debugging 始终返回true(编译器不知道)的表达式
在进行实验时,我经常使用Debugging 始终返回true(编译器不知道)的表达式,debugging,Debugging,在进行实验时,我经常使用if(true){..}或if(false){..}来分割我正在玩的代码块 问题是,现在的编译器有时会对无法访问的代码发出警告。然后,我必须将我的代码升级为类似于if((10%2)==0),但是一些更智能的编译器也认为这是不可能实现的。。(于是一场小武器竞赛开始了……) 我该如何解决这个问题?为什么不使用某种“环境变量”来控制这种事情呢?将其设置为reall条件,则不会与编译器发生冲突 if ( environment.MODE_EXPERIMENT) { ex
if(true){..}
或if(false){..}
来分割我正在玩的代码块
问题是,现在的编译器有时会对无法访问的代码发出警告。然后,我必须将我的代码升级为类似于if((10%2)==0)
,但是一些更智能的编译器也认为这是不可能实现的。。(于是一场小武器竞赛开始了……)
我该如何解决这个问题?为什么不使用某种“环境变量”来控制这种事情呢?将其设置为reall条件,则不会与编译器发生冲突
if ( environment.MODE_EXPERIMENT) {
experimental code here
}
就我个人而言,我尽量避免做这种事情,我们的SCM系统允许我们保留旧版本的代码,真的不需要做太多。为什么不使用某种“环境变量”来控制这种事情呢?将其设置为reall条件,则不会与编译器发生冲突
if ( environment.MODE_EXPERIMENT) {
experimental code here
}
就我个人而言,我尽量避免做这种事情,我们的SCM系统允许我们保留旧版本的代码,真的不需要做太多。这应该可以:
if (atoi("1")) {
}
这对于生成任何类型的常数也很有用。这应该可以:
if (atoi("1")) {
}
这对于生成任何类型的常量也很有用。尝试使用预处理器标志将其移出代码:
#if false
.... code which won't get run ....
#endif
有些IDE甚至会折叠这些无法运行的块,以避免它们碍事。尝试使用预处理器标志将其移出代码:
#if false
.... code which won't get run ....
#endif
有些IDE甚至会折叠这些无法运行的块,让它们不碍事。几乎每种语言都有一个编译器/IDE不会抱怨的
if(false){}
版本。最常见的(afaik)如下所示:
/*
int i = 0;
String s = "I will never be run!";
*/
是的,评论。准确地说,多行注释。阻止代码块运行几乎是它们的第二个主要目的(在文档之后)<当然,如果(true),则通过不使用它们来处理
你试图在这里重新发明轮子,我不知道为什么。几乎每种语言都有一个编译器/IDE不会抱怨的
if(false){}
版本。最常见的(afaik)如下所示:
/*
int i = 0;
String s = "I will never be run!";
*/
是的,评论。准确地说,多行注释。阻止代码块运行几乎是它们的第二个主要目的(在文档之后)<当然,如果(true),则通过不使用它们来处理
你想在这里重新发明轮子,我不知道为什么。@martijn:这个问题似乎很好。我对它进行了编辑,删除了“列出所有的东西”。@RobertHarvey:check;如果没有列表请求,这确实没问题。投票被撤回。@RobertHarvey:但这是关于什么语言的呢?C?@martijn:这个问题似乎很好。我对它进行了编辑,删除了“列出所有的东西”。@RobertHarvey:check;如果没有列表请求,这确实没问题。投票被撤回。@RobertHarvey:但这是关于什么语言的呢?C