请问一个全局变量的有关问题

请教一个全局变量的问题
vi   sample.c

FILE   *fp


int   output()
{
      static   flag=   1

      if   (   flag==1   )
      {  
                  fp=   fopen( "a.txt ",   "w ")
                  flag=0
        }  

        fprintf(fp,   "%s ",   buff   );

}


请问   fp   在sample.c中是不是全局变量呢。

------解决方案--------------------
是的
------解决方案--------------------

------解决方案--------------------
是的,
两帖
------解决方案--------------------
不在任何{}对里面的变量就是全局变量
------解决方案--------------------
传说中的JF?
------解决方案--------------------
不用flag
可以FILE *fp = NULL;
然后在程序中检查指针是否为空,再决定是否打开文件
int output()
{
...
if (fp != NULL)
{
fp = fopen(...)
}
...
}
------解决方案--------------------
申请的变量不再函数中,就是全局变量了。
------解决方案--------------------
不用flag
可以FILE *fp = NULL;
然后在程序中检查指针是否为空,再决定是否打开文件
-------------------------------------------------------
全局量默认都是清零