我最近在 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/