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

4.4 なぜだろう

main 側では longadd() の引数を int と仮定するしかありません。 で、longadd(1, 2) ; と呼び出した場合、 スタックは次のようになります。 (一マス=int, nearコールの場合)

int と long のサイズが違う場合 (実際、MS-C では、int=16bit、long=32bit) longadd()は、

とスタックを解釈してしまうのでまともに動かないのです。


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