objective-c - 在 Objective-C 中的循环外声明变量是否有任何优化效果?

标签 objective-c xcode optimization loops

我已经养成了在其他语言中工作的习惯,在循环外声明重用变量,如下所示:

NSString *lcword;
for( NSString *word in tokens )
{
    lcword = [ word lowercaseString ];
    ...    
}

在 Objective-C 中也这样做是否合理,或者编译器是否足够聪明以至于没有必要这样做?

最佳答案

据我所知,Objective-C 没有任何好处。据我所知,每个现代 Objective-C 编译器都会在函数或方法的开头为局部变量分配堆栈空间。将变量限定在循环中只会阻止您在循环外使用该名称,并阻止编译器在需要时重用堆栈空间。

另请参阅:Is there any overhead to declaring a variable within a loop? (C++) (这是关于一种不同的语言,所以我不会将其标记为欺骗,但工作中的编译器技术非常相似)

关于objective-c - 在 Objective-C 中的循环外声明变量是否有任何优化效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019604/

相关文章:

ios - 如何强制在 UIWebView 中播放的视频在 iPad 上全屏显示?

Mysql按时间间隔分组优化

ios - 制作所有 UIScrollView 内容的快照

iphone - 变量前面的 '&'符号有什么作用?

objective-c - 我在我的 Cocoa 应用程序中添加了一个 WebView,它生成了一个错误

xcode - 如何使用LLDB打印内存地址的内容?

ios - 如何以编程方式设置 UITableView 的数据源?

ios - 在 Xcode 中重命名项目

c++ - 在不同优化级别访问 gcc/g++ 中的局部变量和全局变量的速度

c++ - 总和超过循环 float 的允许值