gpt4 book ai didi

c - 对 C 有用的 GCcflags是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:14:15 28 4
gpt4 key购买 nike

超越设置-Wall ,并设置 -std=XXX ,还有哪些其他真正有用但鲜为人知的编译器标志可用于 C?

我对任何额外的警告特别感兴趣,和/或在某些情况下将警告转化为错误以绝对减少任何意外的类型不匹配。

最佳答案

这是我的:

  • -Wextra-Wall : 必不可少。
  • -Wfloat-equal : 很有用,因为通常测试 float 是否相等是不好的。
  • -Wundef : 如果在 #if 指令中评估了未初始化的标识符,则发出警告。
  • -Wshadow : 每当一个局部变量隐藏另一个局部变量、参数或全局变量,或者当一个内置函数被隐藏时发出警告。
  • -Wpointer-arith : 如果有任何东西取决于函数或 void 的大小,则发出警告。
  • -Wcast-align :每当转换指针时发出警告,以增加目标所需的对齐方式。例如,如果在只能在两字节或四字节边界访问整数的机器上将 char * 转换为 int * 时发出警告。
  • -Wstrict-prototypes : 如果在未指定参数类型的情况下声明或定义函数,则会发出警告。
  • -Wstrict-overflow=5 :警告编译器基于未发生签名溢出的假设进行优化的情况。 (值 5 可能过于严格,请参阅手册页。)
  • -Wwrite-strings : 给字符串常量类型 const char[length] 以便将一个的地址复制到非 const char * 指针会收到警告。
  • -Waggregate-return : 如果定义或调用了任何返回结构或 union 的函数,则发出警告。
  • -Wcast-qual : 每当转换指针以从目标类型中删除类型限定符时发出警告*
  • -Wswitch-default : 当 switch 语句没有 default case* 时发出警告。
  • -Wswitch-enum : 当 switch 语句具有枚举类型的索引并且缺少该枚举的一个或多个命名代码的 case 时发出警告*
  • -Wconversion : 警告可能改变值的隐式转换*
  • -Wunreachable-code : 如果编译器检测到代码永远不会被执行,则发出警告*

那些标记为*的有时会给出太多虚假警告,所以我根据需要使用它们。

关于c - 对 C 有用的 GCcflags是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375697/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com