릴리스 모드 및 디버그 모드로 컴파일 할 때 내 응용 프로그램이 다른 부동 소수점 값을 생성합니다. 내가 발견 한 유일한 이유는 바이너리 추적 로그를 저장하고 릴리스 빌드의 디버그 빌드가 디버그 빌드에서 약간 벗어 났기 때문에 32 비트 부동 소수점 값의 아래쪽 두 비트가 1/2 정도 차이가 나는 것처럼 보입니다. 케이스의.릴리스 및 디버그 빌드에서 다르게 동작하는 부동 값
이 "차이점"을 버그로 간주하거나 이러한 유형의 차이가 발생할 것으로 생각하십니까? 이것은 컴파일러 버그 또는 내부 라이브러리 버그일까요? 예를 들어
:
LEFTPOS and SPACING are defined floating point values.
float def_x;
int xpos;
def_x = LEFTPOS + (xpos * (SPACING/2));
문제는 X360 컴파일러에 관해서입니다.