int와 long의 차이

이세민·2024년 1월 28일

int와 long은 똑같이 4byte의 크기를 가진다.
int와 long int의 크기가 같은것이 모순적이라 생각했다.

C언어가 출시될 당시인 1972년에는 16bit 프로세서가 대중적으로 사용되었다.

int 자료형은 가장 효율적으로 처리될 수 있는 정수 타입을 목표로 개발되었다.

따라서 int의 크기는 프로세서 아키텍처에 따라 크기가 달라진다

16bit -> 2byte
32bit -> 4byte

그러나 64bit 아키텍처가 개발되면서 문제점이 발생했다.
아키텍처마다 서로 다른 int의 크기가 문제가 되기도 하고
4byte 크기의 long보다 int의 크기가 더 커져버릴 수 있는 언어적 모순이 발생했다.
따라서 64bit 아키텍처에선 int의 크기를 4byte로 유지시켰다.

long은 64bit환경에서 일반적으론 8byte크기이지만
Windows OS에서만 4byte로 고정이다.

따라서 크로스플랫폼 개발시 Windows가 포함되어 있다면
long보다는 stdint.h에 포함된 int32_t, int64_t를 사용하는 편이 낫다.

profile
gsm 8기 고등학생

0개의 댓글