当前位置:网站首页>基础知识 - 语法标准(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
边栏推荐
- Interviewer: why does database connection consume resources? Where are the resources consumed?
- Markdown skill tree (9): tables
- [FreeRTOS] interrupt mechanism
- Roblox剑九之剑二
- code::blocks代码格式化快捷键
- 719. find the distance of the number pair with the smallest K (two points)
- 【深度之眼吴恩达机器学习作业班第四期】Linear Regression with One Variable,单变量线性回归
- cv::Mat与Base64转换(含图片压缩解压等流程)
- Perceiving healthy life, enabling boundless connection -- contributing to openharmony 3.1 ecological construction
- What tools do testers need to know
猜你喜欢

Swin Transformer理论讲解

Appium自动化测试基础 — ADB常用命令(三)

cv2.cvtColor

Blue Bridge Cup - minimum frame

AI与元宇宙擦出火花:人类失去的只有枷锁,获得的是全方面的解放

Interviewer: why does database connection consume resources? Where are the resources consumed?
![[FreeRTOS] interrupt mechanism](/img/ab/9b1d07048b4631d7cc95db99ed529a.png)
[FreeRTOS] interrupt mechanism

Detailed design of PLC program control system for washing machine

Explanation of swing transformer theory

Using cdockablepane to realize floating window in MFC
随机推荐
Cv:: mat and Base64 conversion (including picture compression and decompression)
SVM,人脸识别遇到的问题及解决方法
并发幂等性防抖
Using cdockablepane to realize floating window in MFC
Kingbasees coping with transaction rollback caused by too fast growth of table age
matlab 多普勒效应产生振动信号和处理
Schnuka: 3D visual inspection scheme 3D visual inspection application industry
【域渗透提权】CVE-2020-1472 NetLogon 权限提升漏洞
Prompt during packaging: property 'sqlsessionfactory' or 'sqlsessiontemplate'‘
【工控老马】西门子PLC s7-300SCL编程详解
Gateway controller communication protocol
Up and down transitions in polymorphism
道闸控制器通讯协议
Interviewer: why does database connection consume resources? Where are the resources consumed?
Kingbasees v8r6 cluster maintenance case - data migration between clusters
Selected Siemens PLC project example source code [300 sets in total]
1032 Sharing
Matlab Simulink simulation and analysis of power grid sweep frequency
帆船动力学仿真分析
Appium automation test foundation ADB common commands (II)