error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode

在编译的时候报错:error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode

报错截图如下所示

error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode_第1张图片
报错截图

这是因为 gcc 在编译中是基于 C89 标准的,这个标准不允许在 for 循环内声明变量,而需要在循环前声明,如下所示

int index;

for (index = 0; index < LENGTH_LIMIT; index ++) {

    ----> Do something;

}

而如报错中 note 提示的那样,切换成 C99 标准就允许在 for 循环内声明变量了,如下所示

for (int index = 0; index < LENGTH_LIMIT; index ++) {

    ----> Do something;

}

切换标准的方法就是在编译的时候,增加 -std=c99,如下所示

gcc func.c -std=c99 -o func

你可能感兴趣的:(error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode)