我一直在努力解决 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 变量;
),无论有没有初始化,都位于 file1.c 中的某个位置,但这种假设可能甚至没有必要。
在这种情况下,QAC 并不意味着提示“是文件范围,应该是全局的”。
它更像是“是文件范围,应该是函数本地的”。
QAC 热衷于最小化变量范围,尤其是循环控制变量。
关于c - 循环控制变量 %s 具有文件范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177777/