天天看點

error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法

error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法

for(int i=0;i<5;i++)

{

}

錯誤:使用gcc編譯代碼報錯 :error: ‘for’ loop initial declarations are only allowed in C99 mode

note: use option -std=c99 or -std=gnu99 to compile your code

原因:這是因為gcc是基于c89的标準,不能直接在for循環裡定義循環變量,而c99标準則可以在for循環裡定義循環變量。

解決辦法1:在for循環外定義循環變量

int i;

for(i=0;i<5;i++)

{

}

error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法
error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法

在for循環外面定義變量後則不報錯

error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法
error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法

解決辦法2:在makefile或者Makefile檔案後添加 -std=c99

如:

test: test.c

​ gcc -o $@ $^ -std=c99

.PHONY:clean

clean:

​ rm -f test

error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法
error ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法error: ‘for’ loop initial declarations are only allowed in C99 mode的報錯原因和兩種解決辦法

繼續閱讀