将此代码行转换为C.

我有以下代码行:

for ( int i = index; i size; ++i ) //i,index and size are integers.al is an arraylist 

当我在C中编译它时,我得到错误:

  'for' loop initial declarations are only allowed in C99 mode 

我不知道如何解决这个问题。

谢谢!

在循环之外声明迭代器:

 int i; for (i = index; i < al->size; ++i) { do_foo(); } 

或者如果您的编译器支持它,请根据c99或兼容标准进行编译:

 gcc -std=c99 your_code.c 

(注意gnu89 / gnu90是默认值(从4.8开始,无论如何。))

只需在循环之前声明int i

尝试先声明i变量。

 int i; for ( i = index; i < al->size; ++i ) 
 for ( int i = index; i < al->size; ++i ) 

需要成为

 int i; for (i = index; i < al->size; ++i)