过去,我使用 -Wall 和其他 gcc 开关来消除我参与的项目的每个编译器警告。类似地,在 Perl 中,我总是使用 use strict 和 use 警告进行编程(通常也是 -T ) 尽量达到最好的代码质量。我知道几年前,Perl 搬运工小组努力使 perl 本身(Perl 解释器)在 gcc 下干净地编译并启用所有警告。显然,他们认为这是提高代码质量的好主意。我还了解到,现在 Perl 程序员已经使用 Perl::Critic 在他们的代码中添加了更多警告,当他们违反 Damian Conway 的 Perl Best Practices 书中的最佳实践时会发出警告(我相信来自其他来源)。
对于这样清理的代码,我总是有一种很好的感觉,但有时我无法避免有些工作有点浪费的感觉。例如,在十多年前的 C 入门课程中,我被教导要像这样启动我的 main() 函数:
void main(void) {
这是最小的,只能在您没有返回值并且没有访问您的参数时使用。在这种情况下它工作得很好,但是 gcc 警告会让你知道这个函数真的应该看起来像:
int main(int args, char* argv) {
那天我一定已经输入了几百个未使用的 int args, char* argv 行。我真的让我的代码变得更好,还是只是把我的手指磨短了?
现在我在 Eclipse 中用 Java 编程,我们的项目有数以万计的警告。我想把它们清理干净。其中一些特别难以理解和消除,但我正在慢慢学习。其中一些我不得不使用编译器指令来处理以抑制警告(通常以极小的最小方法来排除忽略警告的不良做法),但我也在寻找处理这些的方法。
这值得程序员的时间吗?如果您跟踪每一个编译器警告,项目真的会更好吗?
如果不出意外,将警告的数量减少到零似乎会很好,这样严重的警告就不会在混乱中丢失。
注意:这个问题的重复