1、C标准

C标准主要有三个版本:C89、C99、C11,他们之间的关系可以借用这张图来表示:

C 标准主要由两部分组成:描述C的语法,和描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单片机的C 语言开发工具中只有C编译器而没有完整的C标准库。

2、C标准库

2.1 GNU/Linux版本的实现

glibc是Linux上使用最广泛的C标准库的实现。

glibc库不但包含标准C库的所有头文件,还包含了所有POSIX库的头文件。

在Linux系统里,libc.so.6就是glibc。

2.2 其他版本的实现

iOS版本的C标准库实现:是libSystem的一部分,libSystem是位于/usr/lib/libSystem.dylib中的核心库。LibSystem包含其他组件,如数学库、线程库和其他底层实用程序。

Windows版的C标准库实现:2015之前是CRTDLL.DLL库,2015之后是UCRTBASE.DLL。

Android的C标准库实现:bionic。

3、C++标准

C++的标准总结如下:

时间 名称 标准制定组织 事件
1998 C++ 98 标准 ISO & IEC

1998年C++标准得到ISO和ANSI批准。

以后每5年视实际需要更新一次。

2003 C++ 03 标准 ISO & IEC 2003年通过了C++标准第二版。
2011 C++ 11 标准 ISO & IEC

2011年发布了C++标准第四版C++ 11,取代现行的C++ 98 和 C++ 03。

此次标准为 C++ 98发布13年来第一次重大修正。

2014 C++ 14 标准 ISO & IEC

2014年发布了C++标准第四版C++ 14,

是 C++ 11的增量更新。

4 、C++标准库

4.1 GNU/Linux版本的实现

libstdc++是Linux上的C++标准库的实现。

4.2 其他版本的实现

iOS实现:Mac中,Mac OS < V10.9, libstdc++是默认选项;Mac OS >= V10.9,使用 libc++

(注1:这是LLVM项目所引人的 GNU libstdc++ 的替代;

注2:LLVM是Mac官方编译器框架)

iOS可以使用 iOS SDK来访问标准库;

Windows版实现:

在Windows上,标准库的实现一直严格限定在 Visual Studio中,它是微软官方编译器。他们通常称之为C/C++运行时库(CRT),并且它涵盖了C/C++二者的实现。名为 CRTDLL.DLL。

从 Windows 95开始,Microsoft开始将其迁移到MSVCRT[版本号].DLL之上。例:MSVCR71.DLL

在1997年左右,他们决定将文件名简化为MSVCRT.DLL,这导致了DLL混乱。因此从 Visual Studio 7.0开始,他们切换回每个版本使用单独的DLL了。

Visual Studio 2015引入了深度 CRT 重构。C/C++ 标准库的实现迁移到一个新库, Universal C运行时库(Universal CRT 或 UCRT),编译为 UCRTBASE.DLL。

Android版实现:

libc++。从 Lollipop 开始的官方安卓系统和现代 Mac OS 都将其作为 C++ 标准库使用。从NDK v17开始,它将成为NDK中唯一可用的 C++ 标准库实现。

gnustl。libstdc++的别名,这两者在GNU/Linux中同一个库。该库已被弃用,它将在NDK v18中删除。

STLport。由STLport项目编写的C++标准库的第三方实现,自2008年开始一直处于不活跃状态。与gnustl一样,STLport将在NDK v18种移除。

5、参考

https://www.crifan.com/summary_c_language_version_c89_amd1_c99_c11/

https://www.cnblogs.com/nmj1986/p/10626754.html

C标准、C标准库、C++标准、C++标准库相关推荐

  1. GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)

    1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...

  2. C标准库和glibc(C运行库)的关系

    C 标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库.C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数.变量.类型声明和宏定义.要在一个平台上支持C语言,不仅要实现C编译器, ...

  3. python语音识别的第三方库_python标准库+内置函数+第三方库: 7.音频处理

    python标准库+内置函数+第三方库 欲善其事,必先利其器 这其器必是python的标准库+内置函数,话说许多第三方库, 也是对标准库的使用,进行封装,使得使用起来更方便. 这些库以使用场景来分类: ...

  4. python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库

    注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为3~5分钟. os库是Python标准库,包含几百个函数.它能处理与系统相关的常用路径操作.进程管理.环境参数等 ...

  5. python语言的标准库有哪些,python标准库函数有哪些

    PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...

  6. C标准库“圣经”:C标准库

    C标准库"圣经":C标准库 [作 者](美)P.J.Plauger [同作者作品] [作译者介绍]  [译 者] 卢红星;徐明亮;霍建同[同译者作品]  [丛 书 名] 图灵程序设 ...

  7. C++的标准库和C++的标准模板库(STL)

    https://www.cnblogs.com/jpfss/p/10025771.html C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发 ...

  8. Python基础:标准库和常用的第三方库

    目录 Python的标准库 Python常用的第三方库 标准库用法参考示例 datetime库: zlib库: sys库: urllib: Python的标准库 名称 作用 datetime 为日期和 ...

  9. keil添加hal库_Stm32CubeMX生成的hal库工程加入标准库的库函数的方法

    本帖最后由 seawind1986 于 2017-4-7 22:30 编辑 第一步用Stm32CubeMX创建一个工程并生成Keil MDK的工程,不多赘述. 001.jpg (127.92 KB, ...

  10. python方差的计算公式_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...

    使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...

最新文章

  1. python根据二叉树的前序遍历和中序遍结果历重建二叉树
  2. “西南偏南” 三十年首次 “聚焦中国”
  3. eclipse 全局替换
  4. 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
  5. Spark性能优化指南——高级篇
  6. .Net的类型构造器-static构造函数
  7. 订单查询管理系统Silverlight4(预告)
  8. 游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)
  9. Java 开发必备,EasyExcel 操作详解!
  10. Linkedin领英如何避免封号
  11. 杭电计算机组成原理实践课 实验2 一位全加器构成的四位全加器
  12. structs常见错误
  13. Q Learning学习笔记
  14. hashmap java 排序_Java HashMap 默认排序
  15. html站点文件命名规范,HTML制作中的文件夹及文件命名规范(二)
  16. 用计算机如何绘制流程图,电脑上怎么绘制流程图?电脑小白也能学会的流程图制作方法...
  17. 如何在文字上划横线_word怎么在字上划线的两种方法
  18. 【软件测试】黑盒测试方法小结
  19. 如何实行反编译,将.class文件转化为.java文件
  20. vue3中实现放大镜效果,使用ref获取节点元素

热门文章

  1. 商业中台数据分析工作记录(一)——insert,create,union,averageifs,Ctrl+T
  2. 银企直联自动获取银行回单
  3. MATLAB算法实战应用案例精讲-【自动驾驶】精准定位RTK(补充篇)
  4. 【正式发布】火星人敏捷开发手册2012-12-25(基于Scrum的敏捷开发免费培训教材及公司内部宣传材料)
  5. 【项目管理】人力资源管理之一:X-Y理论
  6. pytorch加载tiny ImageNet
  7. gdal查看图像信息
  8. [node] node
  9. descriptor理解和例程
  10. Android遥控配置