C标准、C标准库、C++标准、C++标准库
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++标准库相关推荐
- GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)
1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...
- C标准库和glibc(C运行库)的关系
C 标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库.C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数.变量.类型声明和宏定义.要在一个平台上支持C语言,不仅要实现C编译器, ...
- python语音识别的第三方库_python标准库+内置函数+第三方库: 7.音频处理
python标准库+内置函数+第三方库 欲善其事,必先利其器 这其器必是python的标准库+内置函数,话说许多第三方库, 也是对标准库的使用,进行封装,使得使用起来更方便. 这些库以使用场景来分类: ...
- python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库
注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为3~5分钟. os库是Python标准库,包含几百个函数.它能处理与系统相关的常用路径操作.进程管理.环境参数等 ...
- python语言的标准库有哪些,python标准库函数有哪些
PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...
- C标准库“圣经”:C标准库
C标准库"圣经":C标准库 [作 者](美)P.J.Plauger [同作者作品] [作译者介绍] [译 者] 卢红星;徐明亮;霍建同[同译者作品] [丛 书 名] 图灵程序设 ...
- C++的标准库和C++的标准模板库(STL)
https://www.cnblogs.com/jpfss/p/10025771.html C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发 ...
- Python基础:标准库和常用的第三方库
目录 Python的标准库 Python常用的第三方库 标准库用法参考示例 datetime库: zlib库: sys库: urllib: Python的标准库 名称 作用 datetime 为日期和 ...
- keil添加hal库_Stm32CubeMX生成的hal库工程加入标准库的库函数的方法
本帖最后由 seawind1986 于 2017-4-7 22:30 编辑 第一步用Stm32CubeMX创建一个工程并生成Keil MDK的工程,不多赘述. 001.jpg (127.92 KB, ...
- python方差的计算公式_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...
使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...
最新文章
- python根据二叉树的前序遍历和中序遍结果历重建二叉树
- “西南偏南” 三十年首次 “聚焦中国”
- eclipse 全局替换
- 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
- Spark性能优化指南——高级篇
- .Net的类型构造器-static构造函数
- 订单查询管理系统Silverlight4(预告)
- 游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)
- Java 开发必备,EasyExcel 操作详解!
- Linkedin领英如何避免封号
- 杭电计算机组成原理实践课 实验2 一位全加器构成的四位全加器
- structs常见错误
- Q Learning学习笔记
- hashmap java 排序_Java HashMap 默认排序
- html站点文件命名规范,HTML制作中的文件夹及文件命名规范(二)
- 用计算机如何绘制流程图,电脑上怎么绘制流程图?电脑小白也能学会的流程图制作方法...
- 如何在文字上划横线_word怎么在字上划线的两种方法
- 【软件测试】黑盒测试方法小结
- 如何实行反编译,将.class文件转化为.java文件
- vue3中实现放大镜效果,使用ref获取节点元素