자바강사 낙자쌤

자료형 int 와 long 의 차이점 본문

C & C++

자료형 int 와 long 의 차이점

낙자쌤™ 2015. 10. 28. 16:06
728x90
반응형

C언어에서 int와 long은 크기나 부호 여부가 동일하며 따라서 표현할 수 있는 수의 범위도 완전히 동일한 것처럼 보입니다.

그렇지만 엄밀히 말하면 다른타입입니다.

C언어의 타입 정의에 int형은 "CPU의 레지스터와 동일한 크기를 가지는 타입"으로 정의되어 있습니다.

레지스터란 CPU내의 임시 기억 장소이며 레지스터의 크기에 따라 CPU의 비트수를 정의합니다. 즉, 레지스터가 16비트이면 16비트 컴퓨터, 32비트이면 32비트 컴퓨터라고 부릅니다.

즉, int형은 CPU가 가장 효율적으로 다룰 수 있는 정수형으로 정의되어 있으며 그래서 int형의 실제 크기는 플랫폼에 따라 달라집니다. 32비트 운영체제에서 int는 32비트이며, 64비트는 int형이 64비트(8바이트)가 될 것입니다.

반면 long형은 그 크기가 4바이트로 고정되어 있어 어떤 플랫폼에서나 4바이트입니다. int와 long이 동일한 크기를 가지는 것은 32비트 플랫폼에서 뿐이며 16비트에서는 다른 타입이고 64비트에서도 달라질 것입니다.

728x90
반응형

'C & C++' 카테고리의 다른 글

[C언어]1.C언어의 시작  (0) 2015.10.28