我有一个很大的 C 代码库,其中一部分是从 Oracle Pro*C 预编译器生成的代码。
我们使用 GNU gcc 编译器。
Pro*C 预编译器生成的代码包含未使用的变量,这些变量会发出许多与 -Wunused-variable
相关的警告,我想忽略这些警告。
我已经尝试了在其他问题中找到的以下内容,但它似乎不适用于 C 代码(缩减为最小的示例)。
int main(void)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
int a=0;
#pragma GCC diagnostic pop
int b=0;
return 0;
}
我仍然收到变量 a
的 -Wunused-variable
错误。
aa.c: In function 'main':
aa.c:8:13: warning: unused variable 'b' [-Wunused-variable]
int b=0;
^
aa.c:6:14: warning: unused variable 'a' [-Wunused-variable]
int a=0;
^
GCC 命令:
gcc-8 -Wall -Wextra -pedantic aa.c -o a
如果您想知道,如果我删除 pop
编译指示,则不会发出警告。
最佳答案
我找到的解决方案是添加 __attribute__((unused))
在生成有问题的变量之前。在这种情况下,始终只有 4 个相关变量,因此这是可能的。
我在 Pro*C 预编译器之后的 make 文件中编写了一个 bash 命令:
for var in varA varB varC varD; do sed -i "0,/${var}/{s/\(${var}\)/__attribute__((unused))\1/}" $file_name; done
希望它对某人有帮助。
关于c - 忽略c中代码块中未使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50825846/