ポスト

int/int64_t/double が混じって積まれると,引数の境界が渡された側からはわからない気がするのですが,そこはどうしてるかご存知でしょうか?

メニューを開く

R. Shioya@r_shioya

みんなのコメント

メニューを開く

ABIごとに違うとは思うのですが、x86_64 linuxではある程度の数まではレジスタ渡し、それを超えてスタック渡しになってからもint32も8-byteずつ使ってpush/popしてました。int/longがごっちゃになっていても大抵は意図した通り動くようにしてあるようです。

Keigo Nitadori@k_nitadori

メニューを開く

printfのように、第一引数で型の並びをプログラマが指定することで解決してます。 (printf側では、第一引数の中身を見ながら、va_argで型指定(≒サイズ指定)しながら取り出す形です)

Shirouzu Hiroaki(白水啓章)@shirouzu

人気ポスト

もっと見る
Yahoo!リアルタイム検索アプリ