|
음. C standard 문서에 따르면 사이즈가 정해진 것(fixed size)은 몇개 되지 않습니다.
즉 32 bit processor에서(또는 32 bit OS에서) int 타입은 32 비트로 정해집니다. 하지만 long int가 강제적으로 정해지지는 않았습니다. 이것은 컴파일러 회사에서 유동성있게 결정하도록 하고 있습니다.
직접 C Standard ISO 문서를 찾아보시면 알수 있으실 겁니다. 그래서 정확한 type에 할당되는 사이즈를 알기 위해서는 반드시 sizeof(int), sizeof(long double) 등을 수행해야 합니다. 예를 들어 다음과 같이 할수가 있죠.
#if sizeof(long double) == 8
#define LONG_DOUBLE double
#else
#define LONG_DOUBLE long double
#endif
플랫폼에 따른 호환성을 높이기 위해서 이런 방법을 사용하기도 합니다.
김상면 님이 쓰신 글 :
: long double에 대해서 알고 싶습니다.
: 윤성우님은 double보다 크거나 같다고 하는데....
: 제가 지금까지 알고 있기로는 그렇지 않은것 같습니다.
:
: 고수님의 조언을 부탁 드립니다.
: 그럼
|