ホームページ  >  に質問  >  本文

c++默认参数顺序的问题

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

PHPzPHPz2766日前551

全員に返信(3)返信します

  • 高洛峰

    高洛峰2017-04-17 15:00:48

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

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 15:00:48

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

    返事
    0
  • 迷茫

    迷茫2017-04-17 15:00:48

    左から右へ仮定します

    リーリー

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

    返事
    0
  • キャンセル返事