标准C库及代码

文章介绍了C语言标准库的发展,从最初的ANSIC到C99和C11,列举了不同阶段增加的头文件。接着,展示了Linux内核中用于字符串处理的函数如strcpy、strncpy和strncat的代码实现,强调了这些代码的重要性。文章还提及了代码作者LinusTorvalds的注释风格,并表达了对高质量代码的赞赏。

 C语言及其标准经过若干次迭代之后,就成了今天大家看到的样子。其标准中指定了很多C标准库,而不同的系统都有自己不同的代码实现。

当然,Linux内核中也有实现了标准C库的代码,下面一起欣赏她的美。

1 标准C库

ANSI C共包括15个头文件。1995年,Normative Addendum 1(NA1)批准了3个头文件(iso646.h、wchar.h和wctype.h)增加到C标准函数库中。C99标准增加6个头文件(complex.h、fenv.h、inttypes.h、stdbool.h、stdint.h和tgmath.h)。C11标准中又新增了5个头文件(stdalign.h、stdatomic.h、stdnoreturn.h、threads.h和uchar.h)。

至此,C标准函数库共有29个头文件:

https://www.wikiwand.com/zh-sg/C%E6%A8%99%E6%BA%96%E5%87%BD%E5%BC%8F%E5%BA%AB#/%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE

2 linux/lib/string.c

linux kernel版本:4.18.13

lnux kernel 地址 https://www.kernel.org/

下面列出3个字符串处理函数 strcpy()、strncpy()、strncat()。代码出自Linus Benedict Torvalds之手,为什么这么说?看代码头部注释,还是那个熟悉的味道stupid。看过git源代码的人应该也会知道,git源码中也有类似注释。

// SPDX-L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值