seclan のほえほえルーム

| |

・プログラミング言語 C の新機能 Part XXXIV: stdarg.h: va_copy (1999/12/13 [])
 stdarg.h ヘッダに新たなマクロが追加されました。それは va_copy です。

va_copy
名前void va_copy(va_list dst, va_list src);
ヘッダstdarg.h
引数src:コピー元
dst:コピー先
戻値なし
解説va_start で va_list を初期化したオブジェクト src のコピー dst を作成する

 可変長引数を使用する時には、va_start で可変長引数への参照のためのオブジェクトを初期化し、va_arg で型を指定して可変長引数を取りだし、va_end を使用してオブジェクトを破棄していました。しかし、途中まで可変長引数を取り出したけど、実は今までの型が間違っていて、途中から取り出しを再開したいという要求がありました。そのような場合は、始めから va_start を使ってやり直す必要がありました。しかし、この va_copy を用いることで、任意の位置の取り出し位置を覚えておけるので、その位置から再び取り出すことができるようになります。

by seclan


| |

 

配信

4.17 msec