c++默认参数顺序的问题
PHPz
PHPz 2017-04-17 14:58:48
0
3
548

c++默认参数顺序为什么是自右往左?为什么不能从左往右呢?请问这是什么原因。

PHPz
PHPz

学习是最好的投资!

全員に返信(3)
小葫芦

右から左に任意の数のパラメータをサポートできます

パラメータはスタックにプッシュする必要があります。スタックは左から右にプッシュされると、最初の左端のパラメータを見つけるのが非常に面倒になります~

いいねを押す +0
Ty80

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

いいねを押す +0
迷茫

左から右へ仮定します

リーリー

では、f(1) の 1 は a または b に渡されましたか? 。したがって、左から右へ進むことはできません。 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート