タイプをva_argに返すことはできますか? 私が知っているようのva_argができません読み取りリターンチャー/ショートINTタイプキャストタイプをva_argに返す
if (flags->size == 0)
u->s = (char)va_arg(pt, int);
if (flags->size == 1)
u->s = (short int)va_arg(pt, int);
タイプをva_argに返すことはできますか? 私が知っているようのva_argができません読み取りリターンチャー/ショートINTタイプキャストタイプをva_argに返す
if (flags->size == 0)
u->s = (char)va_arg(pt, int);
if (flags->size == 1)
u->s = (short int)va_arg(pt, int);
規格が指定する
指定された型の値を持つ式に
va_arg
マクロ膨張しコールの次の引数。
ような発現は、マクロの展開に起因するという事実は、それがどのように使用できるかには関係ありません。特に、va_arg
に指定された型がint
である場合、結果のint
型式は、va_arg()
の振る舞いが定義されていれば、確かに他の整数型にキャストできます(実際には引数の昇格型と互換性があります)。
だから、va_arg()
の結果をキャストすることができます。ドキュメントから
:
va_arg
は現在の引数
は、だからあなたの場合には、それはpt
がint
ように指しているものの値を返します。だから、あなたはその価値をキャストすることができます。