基础知识 - 语法标准(ANSI C、ISO C、GNU C)

由来

  • 早期,程序员使用汇编语言进行编程,汇编语言与机器平台紧密耦合,为了屏蔽不同平台的差异性,增加代码的可移植性,就需要对汇编语法进行一定抽象并且制定一些标准接口,不同平台按照标准实现相同接口,这就是C语言的产生。

标准

语法标准

  1. ANSI C
  • 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
  1. ISO C
  • 与ANSI C标准同时出现的就是ISO组织,将ANSI C加入了ISO的大家庭,定义了ISO C,除了在格式和排版等方面存在一些差别外,其他都与ANSI C相同,所以ANSI C与ISO C 对于我们开发者来说完全相同。

标准库

  • C语言标准库是严格按照C标准实现的一个通用C接口库,最初的C标准库有15个头文件,是C程序员必须掌握的接口。

标准库版本

  • 随着时间的变化,ISO组织已经推出了多个版本的C语言标准,如下:
  1. C89
  2. C99
  3. C11

标准的影响

  • 不同的机器平台的编译器实现可能不同,但是它们必须按照ISO C的标准规范来实现,即必须支持C语言标准语法和C语言标准库,当然随着C标准的演进,编译器也是需要随之改进的,比如当前的C11标准,并不是所有的编译器均支持。

GNU C

  • GNU是一个自由软件基金会,GNU’s Not Unix;GNU是为了实现自由开源目的一个基金会,它提供了很多基于POSIX标准的工具和库,比如glibc、gcc、emacs等等;由于Linux开发者拥护GNU理念,Linux也遵循了GNU标准,并且Linux的开发也使用了GNU提供的工具和库函数。
  • GNU C是GNU组织在ISO C语言标准基础上进行一定扩展制定的C语言标准,GNU C标准对应的标准库是glibc,使用GNU编译器即可支持该标准

Linux平台

  • 在Linux平台上,GNU编译器是最常用的编译工具,因此GNU C是Linux程序员最需要掌握的C语言标准。
  • GNU C 扩展语法
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/#toc-Extensions-to-the-C-Language-Family
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值