ANSI C 与 C99的不同
Posted nylglqx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ANSI C 与 C99的不同相关的知识,希望对你有一定的参考价值。
由于C语言在发展过程中制定了多个标准,其中ANSI C 和 C99这两大标准用的最多,但也有很大的差别。不同的编译软件所使用的标准不同,在一个编译软件中使用其他的C语言标准来写代码就会造成一些“不正常”的错误。以下列举了ANSI C 与 C99两大标准的不同点,以供大家参考。
1. C99中可在任意地方定义变量;而传统的ANSI C 只能在代码开头的地方定义变量。
2. 变量是可变的量,常量是固定不变的量,直接写在程序里的,我们称作直接量(literal),在程序中多次出现的直接量,是magic number不利于阅读与维护;
C99允许直接定义常量 ,在类型前边加修饰符 const,这个值不能被修改,read-only variable is not assignable。
ex: const int A=100;
(注意与宏定义相区别)
3. 单行注释 // 是C99独有的,ANSI C不支持;而多行注释 /* */是传统ANSI C就有的
4. for(int i=0;i<n;i++)这种在for循环里定义变量是C99独有的
5. C99在定义数组时,数组的个数可以是变量
5. C99进行数组的集成初始化时,可定位赋值。
ex: int a[10]={[0]=20,[5]=,5,6};
输出:20,0,0,0,0,5,6,0,0,0
以上是关于ANSI C 与 C99的不同的主要内容,如果未能解决你的问题,请参考以下文章