编译警告的实际意义是什么?

时间:2014-06-05 10:20:26

标签: gcc

我被教导通常用gcc -Wall编译。有时警告会指出我的代码中的逻辑错误,我可以快速找到并纠正它们(例如,如果我声明了一个未被使用的变量,因为我混淆/错误输入变量名称)。但是,如果我从其他来源编译代码,这似乎对我来说运行正常,我经常收到有关已弃用或非标准语言元素等的警告。

我要担心吗?我应该更新或更正这些来源吗?从这个推理来看,将所有编译警告打印为默认值以及编译器标记如-Wnone而不是更安全吗?

1 个答案:

答案 0 :(得分:1)

正如在软件开发中经常发生的那样,答案是"它取决于"。

就个人而言,我发现编译器警告非常有用。我尝试编写可移植代码,在不同的操作系统下使用不同的编译器进行编译实际上非常有启发性,然后比较警告。他们不止一次帮助我找出看上去无辜而又真实的问题。

另一方面,根据您的经验,如果您真的知道自己在做什么,可能会发现令人讨厌的警告。大多数编译器允许您忽略特定警告,建议您查阅编译器手册以获取详细信息。