gpt4 book ai didi

c - 确保变量声明只发生在范围 block 的开头

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:55 25 4
gpt4 key购买 nike

我们最近失去了在 C 编译器上测试代码的能力,这些代码需要在作用域 block 的开头进行变量声明。

没过多久,源代码就开始被任何 block 中的任何地方的声明所侵入。这些编码风格的差异有一段时间没有引起注意,因为我们的警告都无法捕捉到它们。但它们对我们的可移植性目标来说非常糟糕。

我们正在努力恢复我们对具有此限制的 C 编译器进行连续测试的能力。但与此同时,我尝试找到一些可以帮助检测它的 gcc 警告标志组合。

-std=c90-pedantic 会检测到这种情况,但它们也会生成大量其他不需要的警告。例如,我想授权 // 注释样式,或枚举器列表末尾的逗号,或 (...) 可变参数宏或 long long类型。有时有办法关闭某些特定警告(-Wno-long-long-Wno-variadic-macros),有时我找不到任何( // 注释样式)。

启用一组警告并禁用其中的大部分警告只是为了保留相关的警告,这听起来很愚蠢。但如果这是唯一的可能性,我也无所谓。

最佳答案

-Wdeclaration-after-statement 是您想要的 gcc 选项。从手册页:

Warn when a declaration is found after a statement in a block. This construct, known from C++, was introduced with ISO C99 and is by default allowed in GCC. It is not supported by ISO C90 and was not supported by GCC versions before GCC 3.0.

关于c - 确保变量声明只发生在范围 block 的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041040/

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