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

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

/homeparams

备注

此编译器选项仅适用于 x64 编译器(本机编译和跨平台编译)。

当在 x64 编译中传递参数时,调用约定要求用于参数的堆栈空间,甚至对于在寄存器中传递的参数也要求。有关更多信息,请参见 参数传递。然而,默认情况下,在发布版本中,寄存器参数不会写入已为参数提供的堆栈空间中。这使得调试程序的优化(发布)版本相当困难。

对于发布版本,请使用 /homeparams 以确保您可以调试应用程序。/homeparams 确实意味着性能降低,因为它一定会要求一个时钟周期来将寄存器参数加载到堆栈上。

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

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

  1. 打开项目的**“属性页”**对话框。有关详细信息,请参见如何:打开项目属性页

  2. 单击**“C/C++”**文件夹。

  3. 单击**“命令行”**属性页。

  4. 在**“附加选项”**框中键入编译器选项。

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

请参见

参考

编译器选项

设置编译器选项