诗和远方

C 语言标准

C语言

K&R C

K&R C 一般也称为传统 C。在 C 标准没有统一之前,C 语言的作者 Dennis Ritchie 和 Brian Kernighan 合作写了一本书《C 程序设计语言》。这本书很薄,内容精炼,主要介绍了 C 语言的基本使用方法。早期程序员编程,这本书可以说是绝对权威。


ANSI C

在 C 语言刚发布的早期,各大编译器厂商开发自己的编译器时,各自开发,各自维护。这就会造成这样一种局面:程序员写的程序,在一个编译器上编译通过,在另一个编译器编译通不过。

后来 ANSI(AMERICAN NATIONAL STANDARDS INSTITUTE: 美国国家标准协会,简称 ANSI)联合 ISO(国际化标准组织)召集各个编译器厂商、各种技术团体,启动 C 语言的标准化工作。经过艰难的磋商,终于在1989年达成一致,发布了 C 语言标准。

因为是在 1989 年发布的,所以人们一般称其为 C89 或 C90 标准,或者叫做 ANSI C,是目前各种编译器默认支持的 C 语言标准。

C 标准英文文档几百页,讲了很多东西。总体归纳起来,主要就是 C 语言编程的一些语法惯例,比如:定义各种关键字、数据类型;定义各种运算规则;各种运算符的优先级和结合性;数据类型转换;变量的作用域;函数原型;函数嵌套层数;函数参数个数限制;标准库函数。


C99 标准

C99 标准是 ANSI 1999 年在 C89 标准的基础上新发布的一个标准,该标准对 ANSI C 标准做了一些扩充,比如新增一些关键字,支持新的数据类型:布尔型:_Bool;复数:_Complex;虚数:_Imaginary;内联:inline;指针修饰符:restrict;支持long long、long double数据类型;支持变长数组;允许对结构体特定成员赋值;支持16进制浮点数、float _Complex等数据类型;……

C99 标准也借鉴其它语言的一些优点,对语法和函数做了一系列改进:变量声明可以放代码块的任何地方;源程序每行最大支持4095个字节;支持//单行注释;标准库新增了一些头文件如 stdbool.h、complex.h、stdarg.h、fenv.h 等。

目前对 C99 标准支持最好的是 GNU C 编译器,据说可以支持 C99标准99%的新增特性。


C11 新标准

C11 标准是2011年发布的最新 C 语言标准,修改了 C 语言标准的一些 Bug、新增了一些特性:

增加 _Noreturn,声明函数无返回值;

增加_Generic:支持泛型编程;

修改了标准库函数的一些 Bug:如 gets( )函数被 gets_s() 函数代替;

新增文件锁功能;

支持多线程;

……

Related
C 语言编译器2019年07月03日
C 语言标准2019年07月03日
C语言预处理器指令2019年06月20日
为什么include .h文件而不是include .c文件?2019年06月20日
#ifndef, #define2019年06月20日
C语言宏定义和宏定义函数2019年06月18日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2016
  • 页面总数:1
  • 分类总数:17
  • 标签总数:518
  • 评论总数:0
  • 浏览总数:592287
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML