c - 循环控制变量 %s 具有文件范围

标签 c global-variables

我一直在努力解决 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/

相关文章:

c - 如何将 int 的某些位复制到 char 缓冲区

c - 如何就地修改项目(无需复制/传递缓冲区)

c - Dijkstra在C语言中的最短路径算法——改变参数问题

iphone - 单例更改不会保存到下一个 View IOS

javascript - 函数外部的全局变量返回未定义

c - 用于存储地址的嵌入式 C 正确数据类型

c - 如何将数组放入结构体中? (在C中)

swift - Swift 中的局部变量和全局变量

javascript - 使用 jQuery 从其他 JavaScript 文件设置 var 值

c++ - C/C++,选择使用全局参数还是传递参数