头文件中的函数

时间:2015-12-12 20:19:44

标签: c++

我在C头文件中定义了一个函数,其中m_parameters []的数组在别处定义(只是一个数字列表):

CURLOPT_SSL_CIPHER_LIST

在较大的程序中重复调用此函数。如果我只是将g0和g1的表达式直接放在return的参数中,我会得到不同的结果。这是预期的吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

可以预料。 C ++标准为编译器提供了以各种方式进行优化的自由,其中之一是使用CPU中的浮点寄存器来存储中间结果,而不是使用实际的随机存取存储器来写回双精度。在某些硬件上,写回到double的过程需要舍入。例如,现代Intel CPU具有80位浮点寄存器,但在内存中以64位表示双精度。所以 - 更早的四舍五入会导致不同的结果。

FWIW(不多) - 如果您启用优化,可能会找到一致使用的寄存器,而没有优化,编译器可能会天真地跟随您的代码并转向变量使用局部变量暗示的记忆。