日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
va_start, va_start_1 |
変数を引数リストの先頭に初期化するために使用されます。
#include <varargs.h> (HP C Extension)void va_start (va_list ap);
void va_start_1 (va_list ap, int offset);
ap
オブジェクト・ポインタ。引数 ap は,形式のセクションに示している方法で宣言し,使用する必要があります。offset
リスト内の (引数リストの先頭ではなく) それ以降の引数をポイントするために ap をインクリメントするバイト数。ゼロ以外のオフセットを使用することで,ap を,複数の固定引数の後にある最初のオプション引数のアドレスに初期化することができます。
va_startマクロは,変数 ap を引数リストの先頭に初期化します。va_start_1マクロは,既知の数の定義済み引数の後にある引数のアドレスに ap を初期化します。 printf関数は,引数リスト全体の先頭から一定のオフセットに可変長の引数リストを含んでいる HP C RTL 関数の一例です。可変長引数リストは,書式文字列のアドレスだけずれています。
va_start_1で使用するオフセット引数の値を決定する際には, OpenVMS 呼び出し規則の意味を考慮に入れる必要があります。
OpenVMS Alpha システムおよび OpenVMS Integrity システムでは,すべての引数項目がクォドワードです。
注意
特に他のプログラミング言語で書かれたプログラムから (C で書かれた) サブルーチンに渡された引数リストにアクセスするときには, OpenVMS 呼び出し規則の意味を考慮に入れる必要があります。 OpenVMS 呼び出し規則の詳細については,『HP C User's Guide for OpenVMS Systems』または『『OpenVMS Calling Standard』』を参照してください。
上に示したバージョンの va_startと va_start_1は HP C RTL に固有のものであり,移植性はありません。
次の構文は,ANSI C 標準に定義されている, <stdarg.h>ヘッダ・ファイルの va_startマクロに関するものです。
#include <stdarg.h> (ANSI C)void va_start (va_list ap, parmN);
ap
オブジェクト・ポインタ。引数 ap は,形式のセクションに示している方法で宣言し,使用する必要があります。parmN
最後の既知の固定引数の名前。
ポインタ ap は,引数リストの中の parmN の後にある最初のオプション引数をポイントするように初期化されます。このバージョンの va_startは,必ず関数プロトタイプを使って宣言され,定義されている関数と組み合わせて使用するようにしてください。また,移植性のあるプログラムを作成したい場合には,このバージョンの va_startを使用してください。
<stdarg.h>の関数と定義を使った引数リストの処理の例については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』例 3-6 を参照してください。
目次 | 索引 |
|