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

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

被折叠的 条评论
为什么被折叠?



