c语言c99标准,C语言 1999年标准 (C99)

C99是1999年的C语言标准,它在C89基础上进行了多方面改进,如增加了restrict关键字、内联函数、long long数据类型,支持//行注释,以及可变长数组等特性。此外,C99还增强了预处理、对浮点数处理的定义,并引入了新的库和预定义标识符。
摘要由CSDN通过智能技术生成

在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C 继续在改进。(实际上,Normative Amendment1在1995年已经开发了一个新的C语言版本。但是这个版本很少为人所知。)标准在90年代才经历了改进,这就是ISO9899:1999(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年三月采用。

C99中包括的特性

1. 对编译器限制增加了,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节 (extern 要求支持到 31)。

2. 预处理增强了。

3. 支持 // 行注释(这个特性实际上在C89的很多编译器上已经被支持了)。

4. 增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool。

5. 支持 long long, long double _Complex, float _Complex 这样的类型。

6. 支持 %: %:%: ,等等奇怪的符号替代。

7. 支持了不定长的数组。数组的长度就可以用变量了。可以用int a[*] 这样的写法来声明类型。变量声明不必放在语句块的开头,for 语句提倡这么写 for(int i=0;i<100; i) 就是说,int i 的声明放在里面,i 只在 for 里面有效。(VC没有遵守这条标准,i 在 for 外也有效)。

8. 当一个类似结构的东西需要临时构造的时候,可以用 (type_name){xx,xx,xx}。

9. 支持 16 进制的浮点数的描述。

10. 浮点数的内部数据描述支持了新标准,这个可以用 #pragma 编译器指定。

11. 对于非常数的表达式,也允许编译器做化简。

12. 修改了对于 / % 处理负数上的定义,比如老的标准里 -22 / 7 = -3, -22 % 7 = -1 而现在 -22 / 7 = -4, -22 % 7 = 6。

13. 取消了不写函数返回类型默认就是 int 的规定

14. 允许 struct 定义的最后一个数组写做[]不指定其长度描述。

15. const const int i; 将被当作 const int i; 处理。

1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值