가능한 중복 :
size of a datatype in c데이터 유형의 크기는 OS 또는 플랫폼에 따라 다릅니다.
내가 당신을 물어보고 싶은 어떤 데이터 타입의 크기가 서로 다른 OS 나 플랫폼에 차이가 않습니다 않습니다.? 은 32 비트 시스템 64 비트 시스템을 좋아합니다.?
질문은 C 언어 프로그래밍에 대한 질문입니다.
가능한 중복 :
size of a datatype in c데이터 유형의 크기는 OS 또는 플랫폼에 따라 다릅니다.
내가 당신을 물어보고 싶은 어떤 데이터 타입의 크기가 서로 다른 OS 나 플랫폼에 차이가 않습니다 않습니다.? 은 32 비트 시스템 64 비트 시스템을 좋아합니다.?
질문은 C 언어 프로그래밍에 대한 질문입니다.
그들은 할 수 있습니다. C 표준은 정수 및 부동 소수점 유형에 대해 특정 최소 범위를 요구하지만 플랫폼에서 유형의 실제 크기를 결정할 자유가 많습니다.
예를 참조하십시오. limits.h
및 float.h
.
sizeof(char) == 1
sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
플랫폼은 일반적으로 하드웨어에 자연스러운 크기를 선택합니다
또한, 사실 필요가 정수 타입의 크기 사이의 엄격한 관계가있다. 예를 들어, int
은 보통 기본 단어 크기 (예 : 32 비트 하드웨어에서 32 비트)를 갖습니다.
부동 소수점 유형의 경우 유사성이 적습니다. 대부분의 플랫폼은 다소 IEEE 754과 호환됩니다.
확실히. 이것은 32 비트 시스템 포인터에 대한 질문에 함축되어 있습니다. 32 비트는 보통 64 비트 시스템에서 8 바이트 인 4 바이트입니다.
@ paxdiablo : Jens가 "일반적으로"사용하는 이유는 그 때문일 것입니다. –
수정 : 'long'과 'long long'은 같은 크기 일 수 있습니다 ('long'이 64 비트 인 경우). 엄밀히 말하면, 요구 사항은 크기가 아닌 유형의 범위 *에 있습니다. int가 long보다 더 많은 패딩 비트를 가지고 있다면 충분히 미친 시스템은 int보다 길 수 있습니다. –
@ 키스 : 오타가 수정되었습니다 - 감사합니다! 미친 시스템에 관해서는, 당신이 그들을 부르면, 그것은 잘 받아 들여지는 점이지만, 그것이 학문적 인 점이되기를 바란다. 나는 결코 그것을 결코 현실에서 볼 수 없을 것이다. –