Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将此代码行转换为C_C_Loops_For Loop_Arraylist_C99 - Fatal编程技术网

将此代码行转换为C

将此代码行转换为C,c,loops,for-loop,arraylist,c99,C,Loops,For Loop,Arraylist,C99,我有以下代码行: for ( int i = index; i < al->size; ++i ) //i,index and size are integers.al is an arraylist 我不知道如何解决这个问题 谢谢大家! 只需在循环之前声明inti。在循环之外声明迭代器: int i; for (i = index; i < al->size; ++i) { do_foo(); } (请注意,gnu89/gnu90是默认值(无论如何,从4

我有以下代码行:

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

//i,index and size are integers.al is an arraylist
我不知道如何解决这个问题


谢谢大家!

只需在循环之前声明
inti

在循环之外声明迭代器:

int i;

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

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

首先尝试声明i变量

int i;
for ( i = index; i < al->size; ++i )
inti;
对于(i=索引;isize;++i)
for(int i=index;isize;++i)
需要成为

int i;

for (i = index; i < al->size; ++i)
inti;
对于(i=索引;isize;++i)

重复您是否使用GCC?如果是这样,请将
-std=c99
添加到命令行,这样就可以了。否则只需谷歌
c99模式
@Olaf你就可以保留最后一句话,晚安。你的编译器会准确地告诉你问题出在哪里。搜索消息怎么样?@thepirat000:虽然看起来是一样的,但大多数答案都集中在更改代码上,而不是使用更新的标准版本。当这个问题被提出时,这是荒谬的,甚至在7年后,下一个标准版本已经出现了。但是int i需要在索引处相等?只需要在外部声明(
int i;
)。这是错误的建议,因为它会改变范围。这是有效的C。这是错误的建议,因为它会改变范围。这是有效的C。这是错误的建议,因为它会改变范围。它是有效的C。那么解决方案是什么@OlafUse是一个符合标准的编译器。标准是C11。但如果您有C99之前的编译器,则必须在外部声明它@奥拉夫看标签!OP明确询问C99。你在回答中既没有解释这一点,也没有明确说明语义是不同的。第一个版本将改变
i
的范围,因此是错误的建议。请注意,至少从5.1开始,gnu11是gcc的默认值。
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)