Go to the first, previous, next, last section, table of contents.


Typemap

`typemap' は、xsubpp コンパイラが、C の関数の引数や値を Perlの値に マッピングするために使用する、コードを集めたものです。`typemap' ファ イルは、 TYPEMAPINPUTOUTPUT というラベルを付け た、3 つのセクションに分けることができます。INPUT セクションは、 Perl の値を、特定の型の C の変数に変換する方法を、コンパイラに伝えるもの です。 OUTPUT セクションは、特定の型のC の値から、Perl が認識でき る値に変換する方法をコンパイラに伝えます。 TYPEMAP セクションでは、 与えられた C の型を Perlの値にマッピングするために、どの INPUT コー ドと OUTPUT コードを使用するかを、コンパイラに教えます。 `typemap' のどのセクションも、TYPEMAPINPUTOUTPUT のいずれかのキーワードで始まることになります。

Perl のソースディレクトリの `ext' ディレクトリにあるデフォルトの `typemap' には、Perl の拡張モジュールで使用することができる便利な型 をたくさん入れてあります。拡張モジュールによっては、自分のディレクトリに、 追加の `typemap' を定義して置いているものもあります。そのような追加 の `typemap' は、デフォルトの`typemap'INPUTOUTPUT のマッピングを参照することができます。xsubpp コンパイラで は、デフォルトの `typemap' のマッピングが、拡張モジュールの `typemap' でオーバライドすることが許されています。

独自の `typemap' を必要とする拡張モジュールでは、ほとんどの場合、 `typemap' ファイルの TYPEMAP セクションだけが必要になります。 getnetconfigent() の例で示した独自 `typemap' は、拡張モジュー ルの `typemap' の使用例としては、典型的なものかもしれません。この `typemap' は、C の構造体と T_PTROBJ typemap を等しいものとして扱う ために使われてます。 getnetconfigent() で使った `typemap' を 再掲します。C の型は、XS の型とタブで区切られ、C の単項演算子 * は、C の型名の一部とみなされます。

TYPEMAP
Netconfig *<tab>T_PTROBJ


Go to the first, previous, next, last section, table of contents.

検索式: