ジェネリック ライブラリと呼ばれるこの用語に初めて遭遇しましたが、ジェネリック ライブラリの意味を理解できませんでした。
1198 次
2 に答える
0
ここでの「ジェネリック」は、おそらく「パラメータ化されたデータ型」を意味します (Java から来ていますか?)。悲しいかな、C は (データ) 型とのジャグリングが非常に苦手です。「型安全」という意味で。したがって、C での通常の方法は、型固有の作業を行うために実装する必要があるコールバック関数を使用してアルゴリズムをパラメーター化することです。データ自体は通常、 で表されますvoid*
。
qsort
例として、C 標準関数( man sortから)を見ることができます。
#include <stdlib.h>
void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
base
データへの「一般的な」ポインターであり、データnmemb
に関するsize
追加情報compar
であり、データ型の 2 つの要素を比較できるように提供する必要があるコールバック関数になります。
アルゴリズムを提供する多くのライブラリがあります。数が多すぎて、指定する必要があります...
于 2013-02-25T11:50:21.620 に答える