【问题标题】:Code Reordering by visual c++compilerVisual C++ 编译器的代码重新排序
【发布时间】:2011-08-19 12:02:52
【问题描述】:

当使用相同版本的 Visual c++ 编译器但在不同时间并可能在不同计算机上编译同一段 c++ 代码时,编译器执行的代码重新排序是保持相同还是可能不同。即通过代码重新排序进行代码优化背后的逻辑是仅取决于代码还是取决于各种其他参数?

问题的上下文是我想创建一个工具,根据它们的功能确定两个 dll 是相同还是不同。

【问题讨论】:

  • 虽然我不确定,但从某种意义上说,除了源代码之外的许多参数可能会影响编译器输出,这可能是不确定的。可以说,cpu架构:例如P4 与核心 2 二人组。

标签: visual-c++ compiler-optimization


【解决方案1】:

如果我的假设是错误的,请纠正我,因为您想根据 dll 的功能比较它们,所以您不关心实现细节。基于这个假设,很明显,您的工具只能查看由 dll 公开的函数签名和类、结构等定义,无论编译器是否针对同一个 dll,这些定义总是相同的。

【讨论】:

  • 嗨,你能给我一些关于如何从 dll 中查看函数签名、类、结构等的想法吗?
  • 但是,在我的情况下,我不能保证如果两个 dll 中的函数签名相同,它们将具有相同的功能或相同的副作用,所以我可能需要比较代码的功能。
猜你喜欢
  • 2012-11-12
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
相关资源
最近更新 更多