본문 바로가기

기타

int의 크기

int는 CPU에서 가장 기본적으로 사용하는 데이터 단위의 크기인 WORD와 동일한 크기를 의미한다. 

그리고 WORD의 크기는 16비트 컴퓨터에서는 2 bytes, 32비트 컴퓨터에서는 4 bytes, 64비트 컴퓨터에서는 8 bytes이다. 

그리고 주소를 가리키는 포인터의 크기도 WORD의 크기와 같다.

"윈도우 32 bit 버전에서는 RAM을 4G Byte 이내로만 인식가능하고, 그 이상을 인식하려면 64 bit 버전을 깔아야 한다"라는 이야기의 이유는 바로 주소의 최대크기 차이 때문에 그렇다.

그런데, C 컴파일러에서 코딩시 사용하는 int는 호환성을 위해서 4 bytes 크기로 명시되어 있다. 그렇기 때문에 int는 4 bytes라고 생각하면 맞다. 하지만 알아야 할 것은 원래 int가 4 bytes인 것이 아니라, 그냥 int를 4 bytes 짜리로 간주하고 쓰는 것이라는 점이다.

사실, 물리적인 메모리 상에서는 int 형이란 것이 따로 존재하지 않는다. 컴파일러 상에서 int 를 그렇게 정의해서 쓰는 것일 뿐. 그래서 컴파일러마다 다를 수 있다.
예를 들면, 윈도우 32bit 버전의 C 컴파일러에서는 long을 int와 같은 크기로 사용하지만, 리눅스 64bit 버전에서는 long 형을 8 bytes로 사용하는 등의 경우가 있는 등의 차이가 그런 것이다.

'기타' 카테고리의 다른 글

Xshell SQL*Plus backspace 키 시퀀스 설정  (0) 2015.11.11
배열명은 포인터변수가 아니다.  (0) 2015.05.19
티스토리 단축키 추가  (0) 2015.04.28