/homeparams(将寄存器参数复制到堆栈)

强制将传入寄存器的参数也写入其在函数入口的堆栈上的位置。

语法

/homeparams

备注

此编译器选项仅在面向 x64 的本机编译器和跨编译器中可用。

x64 调用约定要求为所有参数分配堆栈空间,即使对于在寄存器中传递的参数也是如此。 有关更多信息,请参阅参数传递。 默认情况下,寄存器参数不会复制到在发布版本中为其分配的堆栈空间中。 这使得调试程序的优化版本变得困难。

对于发布版本,可以使用 /homeparams 选项强制编译器将寄存器参数复制到堆栈,以确保可以调试应用程序。 /homeparams 确实意味着性能劣势,因为它需要额外的周期才能将寄存器参数加载到堆栈上。

在调试版本中,堆栈始终填充寄存器中传递的参数。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“命令行”属性页

  3. 在“附加选项”框中输入编译器选项。

以编程方式设置此编译器选项

另请参阅

MSVC 编译器选项
MSVC 编译器命令行语法