c语⾔:错误:只允许在C99模式下使⽤‘for’循环初始化声明⽤
gcc编译出现
在gcc编译中如果使⽤
for(int i=0;i<n;++i){}会提⽰错误
错误:只允许在 C99 模式下使⽤‘for’循环初始化声明⽤gcc编译出现
就是说你的你的不是标准
这是编译器⾃⾝的问题了你可以换编译器c语言编译器怎么用不了
for(int i=0;i<100;i++)
与
int i;
for(i=0;i<100;i++)
就 i 作⽤域这⼀丁点⼩差别换⼀种写法⽽已这不是重点
重点是思维数据结构
学程序没必要在c99这种⼩节上花功夫
当然也有解决⽅法,如下
错误处理:
C99 允许在for语句的 “表达式1 ”中定义并初始变量, gcc4 编译c语⾔的默认标准是C89, 编译C99程序需加参数 “–-std=c99” ;使⽤
gcc Program12.1.c -o Program12.1 --std=c99就解决了。
下⾯了解⼀下
1) 最初的 ANSI C 标准 (X3.159-1989) 在 1989 年被批准,并于 1990 年发布。稍后这个标准被接受为 ISO 标准(ISO/IEC 9899:1990) 。虽然 ISO 标准将 ANSI 标准的某些章节重新编号并变为条款,但是两者实际上并⽆区别。不论是 ANSI 标准还是 ISO 标准,通常都称之为 C89 ,偶尔也因为发布⽇期⽽被
叫做 C90 。 ANSI 标准 ( ⾮ ISO 标准 )同时附带了 rationale ⽂档。可以使⽤ -ansi , -std=c89 或 -std=iso9899:1990 选项指定 GCC 使⽤ C89 标准;可以使⽤ -pedantic 选项来得到所有的诊断信息( 或者使⽤ -pedantic-errors 选项以使 wangning 变为 error) 。PS:pedantic adj. 1. 卖弄学问的 2. 学究式的,迂腐的
2) 新的 ISO C 标准是 1999 年发布的 ISO/IEC 9899:1999 ,通常称之为 C99 。 GCC ⽬前不完整的⽀持这个版本。详情请参考。为了指定 GCC 使⽤这个版本的 C 标准,需要 -std=c99 或 -std=iso9899:1999 选项。
3) 默认情况下, GCC 提供了⼀些 C 语⾔的扩展,极少的⼏处会与 C 标准冲突。关于这些冲突请参考 “ C 语⾔家族的扩展 ” ⼀节。使⽤上述的 -std 选项将会关闭这些有冲突的扩展。你也可以显式的使⽤选项 -std=gnu89 ( 对应 C89 的GNU 扩展 ) 或 -std=gnu99 ( 对应 C99 的 GNU 扩展 ) 来选择对应版本的扩展功能。如果没有给出 C 语⾔ “ ⽅⾔ ” 选项,将默认的使⽤ -std=gnu89 ;若要使⽤C99的特性要设置-std=gnu9x。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论