c99C99标准的新特性
发布网友
发布时间:2024-09-28 23:09
我来回答
共1个回答
热心网友
时间:2024-10-05 04:52
自C语言的ANSI标准化以来,标准保持相对稳定,直到C++的持续改进。1995年的C语言新版本(Normative Amendment 1)并未广泛传播。直到1999年ISO发布的9899:1999,即C99标准,才带来了显著的改进。C99于2000年3月被ANSI采纳。
C99引入的特性包括:编译器限制放宽,如每行源代码最多支持4095字节,变量和函数名长度增加到63和31字节(extern仍要求31字节)。预处理器功能增强,如宏支持可变参数并能处理空参数,以及行注释的使用。新关键字如restrict、inline、_Complex、_Imaginary和_Bool加入,提供了如long long、long double _Complex和float _Complex等类型支持。
数组长度现在可以是变量,用int a[*]表示,但出于效率考虑,这种写法并非新类型,不适用于全局变量和结构体。变量声明不必总在语句块开头,例如for循环可以写作for(int i=0;i<100;++i)。类似C++构造函数的临时构造语法也得到了支持。
初始化结构和数组的方式也有所变化,如hehe[]的创建。字符串支持Unicode字符,而浮点数的表示和格式化也有所扩展。C99还引入了16进制浮点数,以及long long和宽字符输入输出支持。
其他改进包括对不写函数返回类型的处理,结构体数组的写法变化,以及const的处理。标准头文件也进行了更新,例如添加bool支持的,复数支持的等。