当前位置:网站首页>基础知识 - 语法标准(ANSI C、ISO C、GNU C)
基础知识 - 语法标准(ANSI C、ISO C、GNU C)
2022-06-29 06:41:00 【qazw9600】
由来
- 早期,程序员使用汇编语言进行编程,汇编语言与机器平台紧密耦合,为了屏蔽不同平台的差异性,增加代码的可移植性,就需要对汇编语法进行一定抽象并且制定一些标准接口,不同平台按照标准实现相同接口,这就是C语言的产生。
标准
语法标准
- ANSI C
- 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
- ISO C
- 与ANSI C标准同时出现的就是ISO组织,将ANSI C加入了ISO的大家庭,定义了ISO C,除了在格式和排版等方面存在一些差别外,其他都与ANSI C相同,所以ANSI C与ISO C 对于我们开发者来说完全相同。
标准库
- C语言标准库是严格按照C标准实现的一个通用C接口库,最初的C标准库有15个头文件,是C程序员必须掌握的接口。
标准库版本
- 随着时间的变化,ISO组织已经推出了多个版本的C语言标准,如下:
- C89
- C99
- 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
边栏推荐
猜你喜欢

Detailed design of PLC program control system for washing machine

100 lectures on Excel advanced drawing skills (VI) - practical application cases of Gantt chart in project progress
![Detailed explanation of communication principle between [industrial control old horse] single chip microcomputer and Siemens S7-200](/img/56/b300c0c3606dbc328e301092615bff.jpg)
Detailed explanation of communication principle between [industrial control old horse] single chip microcomputer and Siemens S7-200

Compiling principle: the king's way

ES中配置ext.dic文件不生效的原因

施努卡:3d视觉检测方案 3d视觉检测应用行业

Alicloud access resource: nosuchkey

【深度之眼吴恩达机器学习作业班第四期】逻辑回归编程实现

C实战——高配版贪吃蛇游戏设计

4 years of working experience, and you can't tell the five communication modes between multithreads. Can you believe it?
随机推荐
cv2.cvtColor
code::blocks代码格式化快捷键
指针引用数组元素
Interviewer: why does database connection consume resources? Where are the resources consumed?
KingbbaseES V8R6集群维护案例之---集群之间数据迁移
[industrial control old horse] detailed explanation of the design scheme of the running lamp control system based on Siemens S7-200PLC
小白大战指针 (上)
从Nacos客户端谈Nacos配置中心
关于开发web场景下如何解决手机访问web跨域问题
719. find the distance of the number pair with the smallest K (two points)
【工控老马】洗衣机PLC程序控制系统设计详解
Selected Siemens PLC project example source code [300 sets in total]
cv::Mat与Base64转换(含图片压缩解压等流程)
施努卡:3d机器视觉检测系统 3d视觉检测应用行业
Cv:: mat and Base64 conversion (including picture compression and decompression)
Roblox sword nine sword two
蓝桥杯——最小框架
Viewing application and installation of Hana database license
Unexpected exception ... code: Badrequest when downloading Xilinx 2018.2
Vulnhub's dc7 target