什么是推荐的编译器标志集以帮助减少错误

时间:2016-02-03 09:16:43

标签: c++ compiler-flags

我是一名计算机科学硕士生(转换),他最近接受过C语言教学,现在正在学习Java。除了Java,我还是自己学习C ++,因为它对我想做的项目来说是必要的。

当我们学习C时,我们需要确保我们的代码始终使用以下标志编译

-pedantic -Wall -Wextra -Wfloat-equal -ansi -O2

我了解到使用这些标志可以帮助你找到一些不良练习的案例以及可能不会立即出现的微妙错误(以及一些可能会出现的错误),从而使你的工作效率更高。

我想知道是否有人可以为我推荐一套在编译C ++程序时应该总是使用的一般标志?在编写本文时,我刚刚完成了经典的“hello world”程序,因此没有多少bug。但我想从良好的习惯开始......

2 个答案:

答案 0 :(得分:3)

我肯定会首先包含package java4s.model; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; public class Login { @NotNull @Size(min = 3, max = 20) private String username; @NotNull @Size(min = 3, max = 20) private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ,它会将所有警告转换为-Werror

答案 1 :(得分:1)

对于Clang,-Weverything启用字面所有警告,与-Wall不同。

然后你可以明确地禁用(-Wno-...)你认为太多的那些。我通常只有大约5或10个。