所以我正在编写这个简单的 CLI 工具,而且我的代码不会太繁琐,这基本上是发生了什么:
bool IsThing()
{
// stuff goes here
return false;
}
int _tmain(int argc, _TCHAR* argv[])
{
bool IsThing_ = IsThing();
if ( IsThing_ )
{
printf( "foo\n" );
return 1;
}
return 0;
}
当我运行这段代码时,我明确地尝试失败IsThing()
,甚至从字面上删除其中的所有内容,除了return false
. 但是,每一次,我都会得到一个返回码1
。
为了调试,我IsThing()
在_tmain()
. 最让我沮丧的是,在里面的断点处IsThing()
,VS会告诉我
没有可执行代码与此行相关联。
相反,当我单步执行 main 函数时,它实际上会转到bool IsThing_ = IsThing();
,然后检查 if 条件而无需进入实际函数,并且会立即跳到条件内的内容。
为什么我的函数调用不起作用?