c - "Mixed declaration and code"警告,是否值得解决?

标签 c compiler-warnings

我最近在 gcc 上启用了 -pedantic 选项,现在我收到了大约两三页的“ISO C90 禁止混合声明和代码”警告。

我的这个项目的目标是能够将它部署到任何带有 c 编译器的主流系统上,所以我意识到假设 C99 将在所有地方都得到支持是不明智的,但是甚至值得我花时间来解决这些警告?

还有不支持混合声明和代码的 c 编译器的系统吗?

最佳答案

那么,您打算用 C89/90 还是 C99 编写代码?

由于这是您似乎唯一关心的警告,显然您的代码实际上是用 C89/90 编写的。如果确实如此并且您打算坚持使用 C89/90,那么我会坚持使用严格的 C89/90 并将所有声明移至 block 的开头。

另一方面,如果您愿意并计划切换到 C99,那么“放错地方”的声明就不再是问题。那么您主要关心的是平台/编译器支持。 MS Visual Studio C 编译器是 C89/90 编译器。这是个问题吗? (考虑到 GCC 在 Windows 平台上可用)。

关于c - "Mixed declaration and code"警告,是否值得解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975866/

相关文章:

C编程读取多个文件技术

cscope: -c 或 -T 命令行和旧符号数据库不匹配

android - 编译过程中的 "Ignoring InnerClasses attribute"警告输出是什么?

f# - 禁用每行编译器警告

java - 内部类中的泛型

c# - 在 VS Code 中禁用特定的编译器警告

c - 带 ptrace 的内存调试器

c - 为什么 gdb 不会在 strcpy 上中断?

c - 在缓冲区溢出的 C 中使用 sprintf 的副作用

java - 为什么编译器不给出 super.staticMethod() 警告