C语言 循环控制变量 %s 具有文件范围



我一直在努力解决 QAC 警告,但我无法解决这个特定的警告,它说"循环控制变量 %s 具有文件范围",即使它似乎是一个全局变量。我做错了什么?

在文件中1.h

extern int variable;

在文件1.c 中

#include "file1.h"
void func1(void)
{
  variable = 1
}
void func2(void)
{
 while(variable==1)// WARNING : Loop control variable, %s, has file scope
   {
     Do something
   }
}

文件2.c

#include file1.h
if(variable==1)
{
   do something
}

我假设定义 ( int variable; (,无论是否初始化,都在 file1.c 的某个地方,但这个假设可能甚至没有必要。

在这种情况下,QAC并不意味着抱怨"是文件范围,应该是全局的"。
它更像是"是文件范围,应该是函数本地的"。
QAC喜欢最小化变量范围,尤其是环路控制变量。

最新更新