/homeparams(将寄存器参数复制到堆栈)
强制将传入寄存器的参数也写入其在函数入口的堆栈上的位置。
语法
/homeparams
备注
此编译器选项仅在面向 x64 的本机编译器和跨编译器中可用。
x64 调用约定要求为所有参数分配堆栈空间,即使对于在寄存器中传递的参数也是如此。 有关更多信息,请参阅参数传递。 默认情况下,寄存器参数不会复制到在发布版本中为其分配的堆栈空间中。 这使得调试程序的优化版本变得困难。
对于发布版本,可以使用 /homeparams 选项强制编译器将寄存器参数复制到堆栈,以确保可以调试应用程序。 /homeparams 确实意味着性能劣势,因为它需要额外的周期才能将寄存器参数加载到堆栈上。
在调试版本中,堆栈始终填充寄存器中传递的参数。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
选择“配置属性”>“C/C++”>“命令行”属性页。
在“附加选项”框中输入编译器选项。
以编程方式设置此编译器选项
- 请参阅 AdditionalOptions。