gpt4 book ai didi

c - for循环初始声明错误

转载 作者:行者123 更新时间:2023-12-02 07:01:53 25 4
gpt4 key购买 nike

在我的代码中,我无法在 for 循环初始化部分初始化变量。当我写这段代码时:

    long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
for(int i,j,k=0; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);

编译器显示

error: 'for' loop initial declarations are only allowed in c99 mode

不知道是什么意思但是如果我这样写我的代码:

    long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
int i,j,k=0;
for(; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);

它工作正常。为什么会这样?

最佳答案

像这样在循环中声明变量

for (int i = 0; ...; ...)

是 C99 标准中的新内容,在早期的标准中是不允许的。错误消息告诉您的是,您的编译器设置为使用较早的标准进行编译,因此您不能在 for 语句中使用声明。

您要么必须从 for 语句中删除声明,要么告诉编译器在编译时使用更高版本的标准。如果您有 GCC 或 clang,可以通过添加标志 -std=c99 告诉编译器使用更高版本。

关于c - for循环初始声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com