C语言之标准库

C语言标准库,如glibc和Microsoft CRT,提供了跨平台的编程接口。从C89到C18,标准不断演进,包括头文件如<stdio.h>和<stdlib.h>等,为开发者提供便利。在Linux中,它作为共享库与系统紧密集成,而在Windows上,以DLL形式存在,如MSVCRT.DLL。理解并使用C标准库是深入学习C语言的关键。
摘要由CSDN通过智能技术生成

标准C语言,有一个C标准库(C standard library / ISO C library / libc)。

标准库的意义,在于提供语言标准之外的一些既有实现,来帮助程序员更好的编写程序。

使用标准库中的类型、宏或函数,就类似于平时我们说话时会引用一些历史典故和约定俗语更好的表达自己。

同时,相比于其他语言,C的标准库是非常小的,这使得提供C的运行环境或移植C程序更加容易。

最早的C语言和标准库是C89版,1989年发布,历届版本: C89 / C90 / C95 / C99 / C11 / C18。

关于C语言和其标准库,有着不同的实现,比较主要的是Linux和Windows下使用的:

  • GNU C Library (glibc)

  • Microsoft C run-time library

在Unix/Linux系统里,其存在形式是shared library,并且和操作系统本身是不可分割的一部分(但Linux Kernel并不依赖任何库)。

比如我的Ubuntu的是:/usr/lib/x86_64-linux-gnu/libc.a

在Window系统中,比如VS开发套件中,是以DLL库形式存在的。

一般这个C标准库实现和Visual Studio绑定在一起,配套微软自己的官方编译器,被称为C/C++ Run-time Library (CRT)。

最开始CRT以CTRDLL.DLL形式存在。在Win95以后,开始使用MSVCRT[version-number].DLL(MSVCR20.DLL, MSVCR70.DLL等)。

VS2015之后,开始用Universal C Runtime Library (UCRT), Win10中以UCRTBASE.DLL形式存在。

而我本机的C标准库相关源码位于:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\crt\src。

头文件:

<assert.h>

<complex.h>

<ctype.h>

<errno.h>

<fenv.h>

<float.h>

<inttypes.h>

<iso646.h>

<limits.h>

<locale.h>

<math.h>

<setjmp.h>

<signal.h>

<stdalign.h>

<stdarg.h>

<stdatomic.h>

<stdbool.h>

<stddef.h>

<stdint.h>

<stdio.h>

<stdlib.h>

<stdnoreturn.h>

<string.h>

<tgmath.h>

<threads.h>

<time.h>

<uchar.h>

<wchar.h>

<wctype.h>

参考:

https://en.wikipedia.org/wiki/C_standard_library

https://www.gnu.org/software/libc/

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

http://port70.net/~nsz/c/

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

https://github.com/dryc/libc11

https://www.wikizero.com/en/C18_(C_standard_revision)

http://bxr.su/NetBSD/lib/libc/

https://sourceware.org/newlib/

https://github.com/blanham/PDCLib

写在最后:

建议直接读一遍C标准文档,一定会对C的了解更加深刻。

网上搜索免费版本,或者参见引用:

https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值