可能重复:
C:for loop int 初始声明
我们可以在 C 编程的语句中声明一些变量for
吗?如果可以,我们将在哪个版本的 c 标准中找到该功能?
是的,您可以从 c99 标准开始。直接编译代码:
int main()
{
for(int i = 0; i<10; i++)
printf("%d\n", i);
return 0;
}
with(默认的“gnu89”)gcc
会给你答案:
在函数中
main
:
错误:仅在 C99 模式下才允许使用“for”循环初始声明
注意:使用选项 -std=c99 或 -std=gnu99 编译代码
在 C89/C90 中,所有声明都必须出现在块的开头:
/* valid in C89/C90 */
printf("Hello\n");
{
int i;
for (i = 0; i < 10; i++) {
int j = i % 3;
printf("%d\n", j);
}
}
从 C99 开始,您可以混合声明和语句,并在 a 的第一部分声明变量for
:
/* valid in C99 */
printf("Hello\n");
int whatever;
for (int i = 0; i < 10; i++) {
int j = i % 3;
printf("%d\n", j);
}
在纯 C 中,您不能在语句中声明变量for
。此功能仅在 C++ 中可用。在 C 中,所有变量都必须在代码块的开头声明