在编译的时候报错:error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
报错截图如下所示
这是因为 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