ign*_*rum 8 iphone objective-c ipad ios
我正在使用开源项目(NSBKeyframeAnimation)来处理我的项目中的一些动画.以下是我正在使用的方法示例:
double NSBKeyframeAnimationFunctionEaseInQuad(double t,double b, double c, double d)
{
return c*(t/=d)*t + b;
}
Run Code Online (Sandbox Code Playgroud)
我已将我的Xcode更新为5.0,此项目中的每个方法都开始向我显示如下警告:"无序修改并访问't'".我应该将所有方法重写为objective-c还是有另一种方法可以摆脱所有这些警告?
Mar*_*n R 16
表达式的行为c*(t/=d)*t + b是未定义的,您应该修复它,例如
t /= d;
return c*t*t + b;
Run Code Online (Sandbox Code Playgroud)
有关详细说明,请参阅示例未定义的行为和序列点.
那些警告可以被禁用
在触发警告的代码之前放这个
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunsequenced"
Run Code Online (Sandbox Code Playgroud)
这个代码之后
#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)
但是,没有什么能保证编译器能够优雅地处理这种情况.我来到这个页面是因为我在完全相同的源文件中得到了50个警告.
我很感激这些功能,但是程序员应该意识到,尝试在一行上编写所有东西都是"1980年代",当编译器没有像今天那样优化时.
当赢得几个处理器周期真的很重要时,我们只有几百万,而不是我们现在拥有的数十亿.
我总是把可读性放在第一位.
| 归档时间: |
|
| 查看次数: |
5811 次 |
| 最近记录: |