我一直在努力解决 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喜欢最小化变量范围,尤其是环路控制变量。