OK6410A 开发板 (七) 8 buildroot-2021.02 OK6410A 用户空间的C语言标准库

C有标准, 有些时候会升级(就像armv6 armv7 armv8 一样),有C99, C11
C++有标准, 有些时候会升级(就像armv6 armv7 armv8 一样),有C++03, C++11, C++14

标准 并不对应代码 , 我们需要将标准转换为代码,并能够解析代码
标准涉及到两个东西
	编译器
	标准对应的代码 : 标准库
		对于C   是 C标准库和ISO C标准库 // C标准库和ISO C标准库 是一样的
		对于C++ 是 C++标准库

C标准库的实现有很多种
	GNU组织 实现了一种, 叫 glibc
		// glibc包含c标准库,也包括其他的库(例如pthread)。glibc属于posix标准的一部分
	apple公司实现了一种, 位于 libSystem 中
	微软公司 实现了 一种,位于 CRT
	google公司 实现了一种,叫Bionic
	嵌入式中一般用 	uClibc-ng, musl libc和diet libc // 提供更小的二进制文件和更少的内存占用
C++标准库的实现有很多种
	GNU组织实现了一种,叫libstdc++
	apple公司没有实现,但使用了libc++
	微软公司 实现了 一种,位于 CRT
	google公司没有实现,提供了多种 libc++ libstdc++ STLport

各大linux发行版用了C/C++标准库的哪些实现
	ubuntu 16.04 用了 glibc 和 libstdc++




  • 我们必需使用标准库吗
可以不用
只要在你的程序中不引入它们的任何一个头文件,就代表了不用标准库
但是你实现工程的时候就需要通过一些提供的系统调用使用某种方法与操作系统互动。
其实 标准库中的函数/方法在底层实现的时候 也是 用 系统调用(与硬件设备交互)做的

嵌入式可以考虑不使用标准库(但是一般没必要)
极致优化 可以考虑 不使用标准库(这个就很有必要了)

C标准在哪里
https://www.zhihu.com/question/20725002
c语言有标准文档 。ISO国际组织官网能搜索到相关标准号是ISO/IEC 9899:2011文件

想要下载这些pdf文档居然还要花钱,198的瑞士法郎换成人民币是1300左右

C语言的虽然标准是有国际标准化组织制定的,但是具体编译器的实现和标准制定还是有所不同的

比如GNU GCC 编译器就添加了自己的语法规则,还有嵌入式领域的Keil C51编译器(多定义了自己的数据类型),还有基于llvm框架的Clang编译器,还有和Visual Studio2015集成的VC++ Compiler(包含了微软自定义的内联汇编的语法)都有各自的特殊语法规则,但大体来说每个c语言编译器还是实现了标准文档里面的大部分特性

去找这些编译器官方文档,也是可以。如果用GNU GCC就它的官方网站下载他的文档吧

要写可移植的代码的话最好只看标准文档,另外虽然正式稿收费,但是草案是免费的,在正式稿出版之前的最后一版草案往往和正式标准基本没有区别,所以作为一般学习者使用标准草案才是上策


https://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents

https://en.cppreference.com/w/c

搞了C11的草案,分享给大家
链接:https://pan.baidu.com/s/1aCr7-gpw56qIXDjW82XwPQ 
提取码:np0b

搞到了 gnu c 的介绍(其中包括C标准的实现部分介绍)
地址 : https://gcc.gnu.org/onlinedocs/gcc/index.html
好像没有 pdf 格式 // https://www.zhihu.com/question/24151438


在这里插入图片描述

其他
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值