当前位置:网站首页>基础知识 - 语法标准(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
边栏推荐
- 精选西门子PLC工程实例源码【共300套】
- 【深度之眼吴恩达机器学习作业班第四期】逻辑回归编程实现
- How to solve the cross domain problem of mobile phone accessing the web in the web development scenario
- postman预处理/前置条件Pre-request
- Matlab Simulink simulation and analysis of power grid sweep frequency
- 施努卡:什么是视觉定位系统 视觉定位系统的工作原理
- 【深度之眼吴恩达机器学习作业班第四期】Logistic Regression 逻辑回归总结
- 路由详解(九阳真经)
- excel高级绘图技巧100讲(六)-甘特图在项目进度上的实战应用案例
- 【工控老马】单片机与西门子S7-200通信原理详解
猜你喜欢

Listen to textarea input through Keyup to change button style

excel高级绘图技巧100讲(六)-甘特图在项目进度上的实战应用案例

Vulnhub's dc7 target

tf.count_nonzero

Some examples.

postman预处理/前置条件Pre-request

ShapeShifter: Robust Physical Adversarial Attack on Faster R-CNN Object Detector

帆船动力学仿真分析

【工控老马】基于PLC的花样喷泉设计原理详解

Simulation analysis of sailing dynamics
随机推荐
Perceiving healthy life, enabling boundless connection -- contributing to openharmony 3.1 ecological construction
SQL injection bypass (6)
101. 对称二叉树(递归与迭代方法)
【工控老马】PLC六路抢答器系统设计详解
Roblox剑九之剑二
1031 Hello World for U
tf. count_ nonzero
tf.count_nonzero
Appium automation test foundation ADB common commands (II)
【深度之眼吴恩达机器学习作业班第四期】Logistic Regression 逻辑回归总结
498. diagonal traversal (simulation)
C实战——高配版贪吃蛇游戏设计
Matlab Simulink simulation and analysis of power grid sweep frequency
100 lectures on Excel advanced drawing skills (VI) - practical application cases of Gantt chart in project progress
[industrial control old horse] detailed explanation of design principle of pattern fountain based on PLC
tf.compat.v1.global_variables
Concurrent idempotent anti shake
4 years of working experience, and you can't tell the five communication modes between multithreads. Can you believe it?
小白大战指针 (上)
Viewing application and installation of Hana database license