我正在经历一个旧的代码库,并修复了xCode的静态分析器弹出的问题。所显示的问题是永远不会读取该值,基本上,此方法中发生的事情是它将一个应该为数字的字符串转换为整数。这是有问题的行:
if (len50 == CANNOT_CALCULATE)
{
len50 = 0;
strLen50 = @"";
}
Cannot_Calculate是某个int的宏,这意味着它没有正确地强制转换,并且还有else语句会对其正确地强制转换的int进行填充。如果检查之后,则根本不使用对象len50和strLen50,因此是分析仪发出警告的原因。
我的问题是此行是否必要?将int设置为0还是将string设置为空字符串是否可以节省内存?如果是这样,那么代码库的所有者将需要它,但是如果不是这样,我最好还是摆脱它。
答案 0 :(得分:1)
那是一些奇怪的代码。
1)不,将变量设置为值不会以某种方式影响内存。如果从不读取该值,则这是浪费的代码行(编译器可能仍会对其进行优化)。
2)!""
对于设置布尔值会很奇怪。
我刚读完该书的其余部分,就会非常怀疑。 (作为许多项目的顾问,可疑代码通常是一种生活方式。)