>>948
構造体を戻り値にする仕組みが後ろに書いてあった
隠し引数とは知らなかった

2.9:
どんな仕組みで構造体を引数で渡したり、関数の戻り値に使うことが できるのか。

A:
構造体が関数の引数として渡されるとき、構造体全体が、必要なだけ のワードを使ってスタックに積まれる
(プログラマーは、このオーバー ヘッドを嫌って構造体へのポインターをかわりによく使う)。
コンパ イラの中には構造体へのポインターしか渡さないものもいる。
ただし、 そういうコンパイラでも引数渡しであるという意味を残しておくため に自分用のコピーを持っているかもしれない。

構造体はコンパイラが用意する領域に置かれて関数から返ってくるの が一般的である。
コンパイラは、この領域のアドレスを、特別な"隠 れた"引数として、呼ばれる側の関数に渡す。
古いコンパイラの中に は、構造体を返すのに特別な静的な領域を使うものもあった。
これは 関数を再入(リエントラント)不能にするので、ANSI Cは禁止している。