高洛峰2017-04-17 15:00:48
右から左に任意の数のパラメータをサポートできます
パラメータはスタックにプッシュする必要があります。スタックは左から右にプッシュされると、最初の左端のパラメータを見つけるのが非常に面倒になります~
PHP中文网2017-04-17 15:00:48
スタック順序はビッグエンディアンとリトルエンディアンと同じで、どちらでも使用できます。 C 言語のデフォルトの選択は右から左です。これは、スタックが下に向かって成長するためです。そのため、プッシュされたパラメータのメモリ配置は、デバッグして確認するのに便利かもしれません。メモリ。ただし、実際のコードアクセスはスタックポインタ+オフセットの形式となるため、マシンにとっては特別な意味はありません。
変数パラメーターをサポートできるかどうかは、主に呼び出し元がスタックをクリアする責任があるかどうかによって決まります。たとえば、__stdcall もスタックを右から左にプッシュしますが、呼び出し先はスタックをクリアするため、変数パラメーターはサポートされません。
__pascal は PASCAL 言語を模倣し、スタックを左から右にプッシュしますが、VC ではサポートされなくなりました。