2009-12-31 17 views
5

왜 C++에 flood에 대한 < cstdfloat> 헤더가 있는데 < cstdint>에 대한 정수입니까?C++에서 <cstdfloat>을 사용하지 않는 이유는 무엇입니까?

편집 :

으로 < cstdfloat은> 나는 float과 double에 대한 형식 정의를 제공 헤더를 의미한다. Qt에서 qreal typedef와 매우 비슷합니다. 내 질문은 지금 분명히 바란다.

+2

은 실제로 표준 C++의 일부가 아닙니다 –

+0

float에 대해 cstdint에서 구체적으로 무엇입니까? –

+2

@Neil C++ 0x에 추가됩니다. – dvide

답변

6

종종 응용 프로그램은 비트 필드의 경우 정확히 16 비트가 필요하지만 float에 정확히 16 비트를 사용하면 쓸모가 없습니다. 정수로 비트를 조작하는 것은 쉽기 때문에 정확하게 16을 갖는 것이 좋습니다. float에서 비트를 조작하려면 정수로 캐스팅해야하며 float16 형식은 필요하지 않습니다.

같은 토큰으로, 포인터를 저장할 수있는 수학 함수를 사용하는 것이 유용하지만 포인터 값을 부동 소수점 값으로 변환 한 다음 부동 소수점 연산을 수행해야하는 사람은 유용합니다. 포인터로 다시 변환 하시겠습니까?

포인트 stdint.h의 대부분의 기능 (즉 stdint.h 제외한, C++ 또는 cstdint C99가 헤더이고, C++ 기술적으로 일부가 아닌) 부동 소수점 값에 적용되지 않는다는 점이다.

2

아마도 <float.h> 및 그 C++ 형제 <cfloat>을 찾고 계십니까?

+0

은 다른 점입니다. float 및 double에 대한 typedef를 제공하는 헤더에 대해 이야기하고 있습니다. Qt에서 qreal typedef와 매우 비슷합니다. 당신이 내 질문을 이해하기를 바랍니다. – missingfaktor

+0

그런 다음 질문에이를 지정해야합니다. 귀하의 질문은 매우 모호합니다. –

+0

@Rosenfield : 죄송합니다. 지금 내 질문을 수정했습니다. – missingfaktor