|
関数 mchartable() はキーが key で要素のデフォルト値が default_value である新しい文字テーブルを作る。もし key が管理キーであれば、このテーブルの要素は(デフォルト値を含めて)管理下オブジェクトか NULL のいずれかである。
- 戻り値:
- 処理が成功すれば mchartable() は作成された文字テーブルへのポインタを返す。 失敗した場合は
NULL を返し、外部変数 merror_code にエラーコードを設定する。
|
void mchartable_range |
( |
MCharTable * |
table, |
|
|
int * |
from, |
|
|
int * |
to | |
|
) |
| | |
|
関数 mchartable_range() は文字テーブル table 中で、table のデフォルト値以外の値を持つ最初と最後の文字を探し、それぞれを from と to に設定する。すべての文字が値としてデフォルト値をとっている場合には from と to を -1に設定する。 |
int mchartable_map |
( |
MCharTable * |
table, |
|
|
void * |
ignore, |
|
|
void(*)(int, int, void *, void *) |
func, |
|
|
void * |
func_arg | |
|
) |
| | |
|
関数 mchartable_map() は、文字テーブル table 中の文字に対して関数 func を呼ぶ。ただしtable 中でも値が ignore である文字については関数呼び出しを行なわない。ignore と文字の値の比較は == で行なうので、文字列リテラルやポインタを使う際には注意を要する。
mchartable_map() は、一文字ごとに func を呼ぶのではなく、関数呼び出しの回数を最適化しようとする。 すなわち、連続した文字が同じ値を持っていた場合には、その文字のまとまり全体について一度の関数呼び出 ししか行なわない。
文字のまとまりの大きさにかかわらず、func は from, to, val, arg の4引数で呼ばれる。from と to (両端を含む)は val を値として持つ文字の範囲を示し、arg は func_arg そのものである。
- 戻り値:
- この関数は常に0を返す。
|
|