gpt4 book ai didi

c++ - 如何将包含#pragma optimize( "a") 的代码从 VC++7 移植到 VC++9?

转载 作者:行者123 更新时间:2023-11-30 00:42:20 24 4
gpt4 key购买 nike

我正在将我的 C++ 代码库从 Visual Studio 2k3 迁移到 Visual Studio 2k8。代码包含

#pragma optimize( "a", on )

MSDN says这意味着“假设没有别名”。更高版本的 VS 拒绝编译这个,MSDN 似乎没有说明如何处理包含这个#pragma 的代码。

“假设没有别名”是什么意思,我如何决定如何处理这行代码?

最佳答案

别名是当你有这样的东西时:

int a[100];

int * p1 = &a[50];
int * p2 = &a[52];

现在 a、p1 和 p2 都是数组或数组的一部分的别名。这种情况会阻止编译器生成最佳的数组访问代码(FORTRAN 禁止这样做,这就是它在数组性能方面如此出色的原因)。

你问的 pragma 说编译器可以假设上述情况不存在。显然,如果您需要决定是否需要这你可以做两件事之一:

  • 检查所有代码(困难且容易出错)
  • 将其关闭并查看是否有任何性能下降(简单而明智)

选择权在你:-)

关于c++ - 如何将包含#pragma optimize( "a") 的代码从 VC++7 移植到 VC++9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1299422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com