.PP
引き数 \fIlast\fP は引き数リストのうち、可変な部分の直前に置かれる引き数の名前であ る。つまり呼び出された関数が型を知っている最後の引き数である。
.PP
-この引き数はレジスタ変数や関数、配列として 宣言してはならない。この引き数のアドレスが \fBva_start\fP()
+この引き数はレジスター変数や関数、配列として 宣言してはならない。この引き数のアドレスが \fBva_start\fP()
マクロで用いられるかもしれないからである。
.SS va_arg()
\fBva_arg\fP() マクロは、呼び出し時に指定された引き数のうち、 次の位置にあるものを指定した型 \fItype\fP の値として取得する。 引き数
\fIap\fP は \fIva_list\fP \fIap\fP で、 \fBva_start\fP() によって初期化されている必要がある。 \fBva_arg\fP()
を呼び出すごとに \fIap\fP は変更され、次回の呼び出しの際に、さらに次の引き数を返すようになる。 引き数 \fItype\fP は型の名前である。
-\fItype\fP の前に * を付ければ、オブジェクトへの型付きポインタが得られる。
+\fItype\fP ã\81®å\89\8dã\81« * ã\82\92ä»\98ã\81\91ã\82\8cã\81°ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®å\9e\8bä»\98ã\81\8dã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cå¾\97ã\82\89ã\82\8cã\82\8bã\80\82
.PP
\fBva_start\fP() マクロの直後に \fBva_arg\fP() を最初に実行すると、 \fIlast\fP
の次の引き数が返る。続けて実行すると、残りの引き数がそれぞれ返る。
が現在の状態に達するまでに呼び出したのと同じ回数だけ \fBva_arg\fP() を呼び出す、のと同じことを行う。
.\" Proposal from clive@demon.net, 1997-02-28
-すぐ分かる \fIva_list\fP の実装は、variadic な関数のスタックフレームのポインタである。 このような場合(ほとんどはそうである)、
+ã\81\99ã\81\90å\88\86ã\81\8bã\82\8b \fIva_list\fP ã\81®å®\9fè£\85ã\81¯ã\80\81variadic ã\81ªé\96¢æ\95°ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\83\95ã\83¬ã\83¼ã\83 ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªå ´å\90\88(ã\81»ã\81¨ã\82\93ã\81©ã\81¯ã\81\9dã\81\86ã\81§ã\81\82ã\82\8b)ã\80\81
単に以下のようにすればいいように思える。
.in +4n
.nf
.fi
.in
-残念ながら、(長さ 1の)ポインタの配列として扱うシステムもある。 そのような場合、以下のようにする必要がある。
+æ®\8b念ã\81ªã\81\8cã\82\89ã\80\81(é\95·ã\81\95 1ã\81®)ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81¨ã\81\97ã\81¦æ\89±ã\81\86ã\82·ã\82¹ã\83\86ã\83 ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ã\82\88ã\81\86ã\81ªå ´å\90\88ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
.in +4n
.nf
.fi
.in
-æ\9c\80å¾\8cã\81«ã\80\81å¼\95ã\81\8dæ\95°ã\82\92ã\83¬ã\82¸ã\82¹ã\82¿ã\81§æ¸¡ã\81\99ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88ã\80\81 \fBva_start\fP() ã\81§ã\83¡ã\83¢ã\83ªを割り当て、引き数を格納し、
+æ\9c\80å¾\8cã\81«ã\80\81å¼\95ã\81\8dæ\95°ã\82\92ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81§æ¸¡ã\81\99ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88ã\80\81 \fBva_start\fP() ã\81§ã\83¡ã\83¢ã\83ªã\83¼を割り当て、引き数を格納し、
次の引き数がどれかを指し示すようにする必要がある。 そして \fBva_arg\fP() でリストを順番にたどり、 \fBva_end\fP()
-で割り当てたメモリを開放する。 このような状況に対応するため、C99 では \fBva_copy\fP() マクロを追加し、
+ã\81§å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92é\96\8bæ\94¾ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªç\8a¶æ³\81ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\81\9fã\82\81ã\80\81C99 ã\81§ã\81¯ \fBva_copy\fP() ã\83\9eã\82¯ã\83ã\82\92追å\8a ã\81\97ã\80\81
前述のような割り当ては以下のように置き換えられるようにした。
.in +4n
.nf
}
.fi
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。