/homeparams (Registerparameter in den Stapel kopieren)

Erzwingt, dass Parameter, die in Registern übergeben werden, auch an ihre Positionen auf dem Stapel beim Funktionseintrag geschrieben werden.

Syntax

/homeparams

Hinweise

Diese Compileroption ist nur in den systemeigenen und cross-compilern verfügbar, die auf x64 abzielen.

Für die x64-Aufrufkonvention muss Stapelspeicher für alle Parameter zugewiesen werden, auch für Parameter, die in Registern übergeben werden. Weitere Informationen finden Sie unter Parameterübergabe. Standardmäßig werden die Registerparameter nicht in den Stapelspeicher kopiert, der ihnen in Releasebuilds zugewiesen ist. Dies erschwert das Debuggen eines optimierten Releasebuilds Ihres Programms.

Für Releasebuilds können Sie die Option "/homeparams " verwenden, um zu erzwingen, dass der Compiler Registerparameter in den Stapel kopiert, um sicherzustellen, dass Sie Ihre Anwendung debuggen können. /homeparams impliziert einen Leistungsnachteil, da ein zusätzlicher Zyklus erforderlich ist, um die Registerparameter auf den Stapel zu laden.

In Debugbuilds wird der Stapel immer mit Parametern gefüllt, die in Registern übergeben werden.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Geben Sie die Compileroption im Feld "Zusätzliche Optionen " ein.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile