2017-09-29 20 views
2

C++에서 ieeefloat64 변수를 초기화하지 않을 때 어떤 일이 발생하는지 알고 싶습니다.ieeefloat64 변수가 C++로 초기화되지 않으면 어떻게됩니까?

IEEE_FLOAT64 x; 
cout << x; 

현재로서는 출력이 -9.255963E + 061입니다. 이것은 임의의 정크 값입니까?

+1

IEEE_FLOAT64가 자체를 초기화하는 기본 생성자가있는 클래스가 아닌 경우 정의되지 않은 동작이 발생합니다. – geza

+1

'IEEE_FLOAT64 '란 무엇입니까? 어떻게 정의됩니까? – NathanOliver

+0

IEEE_FLOAT64는 IEEE 표준에 따라 정의 된 데이터 유형으로 배정 밀도를 제공하며 하드웨어 부동 단위로 사용됩니다. @ NathanOliver –

답변

1

컴파일러에 따라 다릅니다. Visual C++은 디버그 모드에 있으면 0으로 초기화하지만 해제 모드이면 초기화되지 않은 상태로 남겨 둡니다.

값이 초기화되지 않은 경우 아무 것도 될 수 있으므로 그렇게하지 마십시오.

+0

나는 -9.255963E + 061을 얻는다. 이 가치는 무엇을 의미합니까? 정크 값입니까? –

+0

예. 당신이 변수를 설정하지 않았기 때문에 변수가 메모리에 할당되기 전에 그 변수가 메모리에 존재하게됩니다. 'IEEE_FLOAT64 x (0);'이 문제를 해결할 것입니다. –

+0

그러나 그 임의의 쓰레기 값, 그럼 내가 왜 응용 프로그램을 실행할 때마다 같은 가치를 얻는가? –