2

是否有基本 C 库函数(如 、 等)的源/strcmp数据库memset
我想实现基本的 C 库函数,但我无法验证我是否做对了。

我找到了几个源代码数据库,但它们比应有的复杂得多(例如,实现strcpy超过 30 行,其中一半与复制字符串无关,我认为)。

4

3 回答 3

1

PJ Plauger有一本很棒的书The Standard C Library。它有点过时(1992 年),但如果您想实现 libc 并正确执行,它仍然是宝贵的资源。它包含库的完整代码。还有musl libc。代码位于 git repo 中。实现并不简单,但如果我将它与其他实现进行比较,它真的很小而且很简单。正如其他人已经提到的那样,C 标准是您想要查看的东西。

于 2012-11-27T18:25:00.850 回答
1

“基本”C 库函数也是对程序性能和正确性最重要的一些函数,因此往往具有一些复杂的实现。

我建议您查看Newlib的代码。它是一个用于嵌入式系统的基本 C 库(您的电视可能会很好地运行它),它也用于 Cygwin。该许可证还与出于您自己的目的的“借用”源代码大部分兼容,但要小心,因为它的某些位(某些文件)是 GPL。

于 2012-11-27T13:25:46.933 回答
1

查看OpenBSD C 库。例如,这是它的基本内容strcpy

char *
strcpy(char *to, const char *from)
{
    char *save = to;

    for (; (*to = *from) != '\0'; ++from, ++to);
        return(save);
}

函数的文档以联机帮助页的形式包含。

(它还带有常用例程的优化版本,通常在汇编程序中,因此 C 版本应该被视为参考实现。)

于 2012-11-27T13:34:28.717 回答