当我在发布模式和调试模式下编译它时,我的应用程序会生成不同的浮点值。我发现的唯一原因是我保存了一个二进制跟踪日志,而来自发布版本的日志与调试版本略有不同,看起来 32 位浮点值的底部两位相差约 1/2的案例。
您会认为这种“差异”是一个错误,还是会出现这种差异。这是编译器错误还是内部库错误。
例如:
LEFTPOS and SPACING are defined floating point values.
float def_x;
int xpos;
def_x = LEFTPOS + (xpos * (SPACING / 2));
问题与 X360 编译器有关。