2

基本的なCライブラリ関数(、など)のソース/データベースはありますstrcmpmemset
基本的なCライブラリ関数を実装したいのですが、正しく実行されているかどうかを確認できません。

いくつかのソースコードデータベースを見つけましたが、それらは本来よりもはるかに複雑です(たとえば、の実装はstrcpy30行を超えており、その半分は文字列のコピーに関連していないと思います)。

4

3 に答える 3

1

「基本的な」Cライブラリ関数も、プログラムのパフォーマンスと正確さにとって最も重要なもののいくつかであるため、いくつかの複雑な実装を持つ傾向があります。

Newlibのコードを確認することをお勧めします。これは組み込みシステム向けの基本的なCライブラリであり(テレビでも実行できる可能性があります)、Cygwinでも使用されます。ライセンスはまた、あなた自身の目的のための「借用」ソースとほとんど互換性がありますが、それのいくつかのビット(いくつかのファイル)はGPLであるため注意してください。

于 2012-11-27T13:25:46.933 に答える
1

OpenBSDCライブラリをチェックしてください。たとえば、これがその基本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 に答える
1

PJPlaugerのすばらしい本TheStandardCLibraryがあります。少し古い(1992)ですが、libcを実装して正しく実行したい場合は、それでも貴重なリソースです。ライブラリへの完全なコードが含まれています。musllibcもあります。コードはgitリポジトリにあります。実装は単純ではありませんが、他の実装と比較すると、非常に小さくシンプルです。そして、他の誰かがすでに述べたように、C標準はあなたが見たいものです。

于 2012-11-27T18:25:00.850 に答える