Notice : 内容無保証。禁無断転載。リンク自由。

2.1 スタック!スタック!

C言語の 関数コールの形式は、 すべて "値による呼び出し" (call byvalue) です。 MS-C では通常、スタックをつかって引数を受け渡ししています。 たとえば、

int nibai(int x) {
    return 2*x ;
}

という関数を考えてみましょう。

int main(void) {
        :
    x = nibai(1) ;
        :
}

と呼ばれたとき、main()側では、

こう引数をスタックにpushしてから、 nibai()をよびます。 呼び出された nibai() 側では SPの値を見て、 リターンアドレスの下に積んである引数の値(=1)を知るのです。


[ <前 ][ 目次 ][ 次> ]
トップページに戻る