忽略c中代码块中未使用的变量
Ignore unused variables in a block of code in c
我有一个很大的 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))/}" $file_name; done
希望对大家有所帮助。
我有一个很大的 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))/}" $file_name; done
希望对大家有所帮助。