比如写出下面这段程序:
for (int i = 0; i < n; ++i)
do_something();
然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。
原因是在循环条件中声明变量的话,只在C99标准中支持,C90标准不支持。
所以改成:
int i;
for (i = 0; i < n; ++i)
do_something();
这样编译就可以通过了。
C99与C90循环变量声明区别
本文介绍了在使用C语言编程时,C99标准与C90标准下for循环中变量声明的不同之处。展示了如何避免因变量声明位置不当导致的编译错误,并提供了正确的代码示例。
比如写出下面这段程序:
for (int i = 0; i < n; ++i)
do_something();
然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。
原因是在循环条件中声明变量的话,只在C99标准中支持,C90标准不支持。
所以改成:
int i;
for (i = 0; i < n; ++i)
do_something();
这样编译就可以通过了。
7186
787

被折叠的 条评论
为什么被折叠?