声明一个从未引用的局部变量是错误的。 死变量,如不合时宜的死代码,只是一个来源 维护程序员的困惑。
我已在ldc 0.14
,gdc 5.1
和dmd 2.067.1
中汇编了以下代码:
void main()
{
int i;
//local variable i not used...
}
我没有遇到任何编译错误。这会不会编译?
答案 0 :(得分:3)
很多错误都没有实际实现。它们是很好的东西,编译器编写者保留出错的权利(根据规范的理由,你的代码无论如何都是错误的),但实际上并没有......也许永远不会真正做到。< / p>
使用局部变量而不首先为其赋值是错误的。实施可能并不总是能够检测到这些情况。其他语言编译器有时会对此发出警告,但由于它始终是一个错误,因此应该是一个错误。
由于人们依赖自动初始化作为一项功能,因此没有实施,也可能永远不会实现。
声明一个从未引用的局部变量是错误的。死变量,如不合时宜的死代码,只是维护程序员混淆的一个原因。
未实施
返回本地变量的地址或引用是错误的。
仅部分实施。
答案 1 :(得分:2)
我从未见过编译器为未使用的变量生成错误。警告肯定但错误号
我建议您尝试检测它们的Dscanner,尽管它有时会发出错误的警告,特别是如果用作out参数。