为什么我收到错误的任何想法?我以为我做得很好,在编码之前没有显示任何错误?
for (int i=0;i<height;i++)
{
if (i == 0 || i == height-1 )
{
for (int j=0;j<width;j++)
{
printf("%i_",paddings);
if (j == width-1)
{
printf("%i\n",paddings);
}
}
}
答案 0 :(得分:2)
这是ANSI C时代的阻碍。基本上,它意味着您必须声明变量以便在for
循环中使用,如下所示:
// Looping variables declared outside the loops
int i, j;
for (i = 0; i < n; i++)
{
if (i == 0 || i == height - 1)
{
for (j = 0; j < width; j++)
{
printf("%i_", paddings);
if (j == width - 1)
{
printf("%i\n", paddings);
}
}
}
}
或者,您可以更改编译器标志,以便它使用C99或更高版本。对于gcc
,这只需要添加编译标记-std=c99
,或者添加C11,-std=c11
答案 1 :(得分:0)
for (int i = 0; ...)
是C99扩展名;为了使用它,你必须通过gcc
中的特定编译器标志启用它对于像C89这样的旧标准是:
int i;
for (i = 0; ...)
您必须在循环之外声明变量。