2011-08-19 90 views
1

当同一片C++代码使用相同版本的visual C++编译器编译但在不同时间并且可能位于不同计算机中时,编译器执行的代码重新排序是否保持不变或它可能不同。即通过代码重新排序进行代码优化的逻辑是仅仅取决于代码还是取决于各种其他参数?通过visual C++编译器重新编码代码

问题的背景是,我想创建一个工具,根据它们的功能找出两个dll是相同的还是不同的。

+0

非确定性编译器? –

+0

虽然我不确定,但它可能是非确定性的,因为除了源代码之外,许多参数都可能会影响编译器的输出。比如说,CPU架构:例如P4 vs core 2二人组。 – sraok

回答

2

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

+0

嗨,你能不能给我一些关于函数签名,类,结构等如何从dll中查找的想法? – sraok

+0

但是,在我的情况下,我不能保证,如果函数签名在两个dll中都是相同的,它们将具有相同的功能或相同的副作用,因此我可能需要比较函数的代码。 – sraok