インターフェイスでは、parameter_description
という名前の構造に Natural サブプログラムまたはメソッドのパラメータに関する情報が提供されています。この構造は、ヘッダーファイル natuser.h で定義されています。このファイルは、ディレクトリ <install-dir>/natural/samples/sysexnni に含まれています。
parameter_description
構造の配列は、nni_callnat
および同様の関数へのコールごとにインターフェイスに渡されます。parameter_description
構造は、関数 nni_get_parm_info
を使用して、パラメータセット内のパラメータから作成されます。
この構造の関連要素には、次の情報が含まれています。この表にリストされていない要素は、すべて内部でのみ使用されます。
Format | 要素名 | 内容 |
---|---|---|
void* | address | パラメータ値のアドレス。再割り当てや解放はできません。address 要素は、ダイナミック変数の配列および X-array に対しては NULL ポインタになります。この場合は、配列データ全体にアクセスすることはできず、パラメータアクセス関数
nni_get_parm を使用して要素ごとにアクセスすることのみが可能です。
|
int | format | パラメータの Natural データタイプ。詳細については、「Natural データタイプ」を参照してください。 |
int | 長さ | パラメータ値の Natural の長さ。データタイプ NNI_TYPE_ALPHA および NNI_TYPE_UNICODE の場合は文字数。データタイプ NNI_TYPE_PACK および NNI_TYPE_NUM の場合は小数点文字の前にある桁数。配列の場合は 1 つのオカレンスの長さ。ダイナミック変数の配列の場合は長さが 0 で示されます。次に、関数 nni_get_parm_array_length を使用して、個別のオカレンスの長さを決定する必要があります。
|
int | precision | データタイプ NNI_TYPE_PACK および NNI_TYPE_NUM の場合は、小数点文字の後にある桁数。これ以外では 0。
|
int | byte_length | パラメータ値の長さ(バイト単位)。配列の場合は 1 つのオカレンスの長さ(バイト単位)。ダイナミック変数の配列の場合は長さが 0 バイトで示されます。次に、関数 nni_get_parm_array_length を使用して、個別のオカレンスの長さを決定する必要があります。
|
int | dimensions | 次元の数。スカラの場合は 0。次元の最大数は 3 です。 |
int | length_all | パラメータ値の合計長(バイト単位)。配列の場合は配列全体の長さ(バイト単位)。ダイナミック変数の配列の場合は合計長が 0 で示されます。次に、関数 nni_get_parm_array_length を使用して、個別のオカレンスの長さを決定する必要があります。
|
int | フラグ | パラメータフラグ。「フラグ」を参照してください。 |
int | occurrences[10] | 各次元におけるオカレンス数。最初の 3 つのオカレンスだけが使用されます。 |
int | indexfactors[10] | 各次元の配列インデックスファクタ。最初の 3 つのオカレンスだけが使用されます。 |
変数の範囲が固定された固定長の配列の場合、配列の内容には構造要素 address
を使ってダイレクトにアクセスできます。この場合は、次のことが適用されます。
3 次元配列の要素(i、j、k)のアドレスは次のように計算されます。
elementaddress = address + i * indexfactors[0] + j * indexfactors[1] + k * indexfactors[2]
2 次元配列の要素(i、j)のアドレスは、次のように計算されます。
elementaddress = address + i * indexfactors[0] + j * indexfactors[1]
1 次元配列の要素(i)のアドレスは次のように計算されます。
elementaddress = address + i * indexfactors[0]