# include <stdio.h>
# include <stdlib.h>
int myvariable_NOT_caught_by_Wall;
int main ( int argc, char *argv[] )
{
int myvariable_caught_by_Wall;
return 0;
}
通过 gcc some_program.c -Wall 进行编译时,gcc是否正常 是否为未使用的全局变量发出警告?
有没有办法让这种情况发生? 我在SLES_11.4中使用gcc-4.3.4和gcc-4.8.3体验过这一点
答案 0 :(得分:2)
通过gcc some_program.c -Wall编译gcc是否正常,未发出未使用的全局变量警告?
是
编译器无法在编译时知道未使用全局变量。
想象一下另一个.c文件:
extern int myvariable_NOT_caught_by_Wall;
void foo()
{
if (myvariable_NOT_caught_by_Wall == 0 )
{
dothis();
}
else
{
dothat();
}
}