gcc编译器选项,用于警告C中main之外定义的未使用的全局变量

时间:2018-02-25 05:25:06

标签: c gcc compiler-warnings

# 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体验过这一点

1 个答案:

答案 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();
   }
}