我以这种方式声明了一个变量:

int i = 0;

我得到警告:

ISO C90禁止混合声明和代码

我该怎么修?

推荐答案

我认为你应该把变量声明移到块的顶部.即.

{
    foo();
    int i = 0;
    bar();
}

{
    int i = 0;
    foo();
    bar();
}

C++相关问答推荐

丑陋的三重间接:可扩展的缓冲区管理 struct

如何正确地索引C中的 struct 指针数组?

C中是否有语法可以直接初始化一个常量文本常量数组的 struct 成员?

如何在不使用其他数组或字符串的情况下交换字符串中的两个单词?

在 struct 中强制转换空指针

在基本OpenGL纹理四边形中的一个三角形中进行渲染

如何读取文件并将内容保存在字符串中?(在C语言中,没有崩溃或核心转储错误)

Tic-tac-toe:从文件加载存储

为什么realloc函数在此代码中修改变量?

初始成员、公共初始序列、匿名联合和严格别名如何在C中交互?

Tcl_GetDoubleFromObj在列表的迭代中是一个缺点

不兼容的整数到指针转换传递';char';到类型';常量字符*

计算时出现奇怪的计算错误;N Select K;在C中

atoi函数最大长-长误差的再创造

C 和 C++ 标准如何告诉您如何处理它们未涵盖的情况?

将数组中的所有元素初始化为 struct 中的相同值

const struct 成员的 typedef 中的灵活数组大小

在C中定义函数指针?

使用复合文字数组初始化的指针数组

我们可以在不违反标准的情况下向标准函数声明添加属性吗?