Gri*_*ess 0 c logic objective-c
嘿互联网.我在C中有一个非常奇怪的问题.我导出一个浮点值,然后检查它是否大于0.但是,即使该值小于零,比较总是评估为true.这是代码:
if (sVel > 0.0f)
{
sVel += 1.0f;
sVel -= 1.0f;
NSLog(@"SEP VEL: %1.6f", sVel);
return;
}
Run Code Online (Sandbox Code Playgroud)
因此,将sVel设置为100会按预期打印日志并点击return语句; 凉.然而,sVel设置为-100并不能打印日志仍然碰到return语句.我完全糊涂了,我不知道从哪里开始跟踪这个......
看起来您正在使用调试器跟踪代码.大多数编译器可能会优化代码并执行相同的return语句.然后,无论sVel的初始值如何,您都会跳转到返回码.
真正的证据是print语句.由于未打印日志,这意味着正确评估了sVel.尝试将日志放在if块之外,看看它何时显示.
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |