2011-01-06 14 views
5

可能性の重複:
Container Class/Library for CSTLがC++用であるため、C(C99など)のための標準化された一般的なライブラリはありますか?

私は私のCプログラムのためのベクター、リストやセットを使用することを余儀なくされるだろう期待しています。これらのエンティティをゼロから作成するか、STLがC++のための標準ライブラリのいくつかがありますか?

+2

重複した質問例を参照してください:http://stackoverflow.com/questions/305611/container-class-library-for-c – quinmars

+1

GLibを見てください:http://library.gnome.org/devel/glib /stable/glib-data-types.html – Christoph

+0

抽象ベクトル、リスト、およびセットを使用する場合は、C言語ではなくC言語で記述する必要があります。上位言語のイディオムをC言語にコピーすると、C言語あなたがより高水準の言語でそれを書いた場合よりもはるかに醜いコードになります。これの素晴らしい例は 'glib' /' gtk'コードを参照してください。 –

答えて

1

APRまたはGLibをご覧ください。これらは、ポータブルCライブラリに広く使用されており、毎回ホイールを再開発する必要はありません。

1

standard c libraryがありますが、リストにあるような組み込みのコンテナタイプはサポートされていません。

+0

はい、C99には新しい配列型の組み込み機能がありますか?いいえ? – Mordachai

2

Cにはテンプレートがないため、これらのC++コレクションを一般的な方法で実装するのは難しいかもしれません。私はC言語でこれらの機能を実装しているライブラリは認識していません。

私がこのような状況に直面した場合、私の最初の考えは、C++機能の恩恵を受ける私のプログラムの部分 を分離し、 C++で extern "C"これらのモジュールへのインターフェイスを提供するので、プログラムの純粋なC 部分から呼び出すことができます。それはあなたのための選択肢ですか?

関連する問題