본문 바로가기
컴퓨터/C

[C언어][개발역량평가] 자료형(Data Type)의 크기(Size)

by Luyin 2013. 8. 19.

ANSI/ISO C 표준에 보면 다음과 같이 나와 있습니다.

 

short should be at least 16bits and long should be at least as long as int, but not smaller than 32 bits.

 

대충 번역해보면, short 는 최소한 16 bit 가 되어야 하며, long 은 적어도 int 크기보다는 크고 32 bit 보다는 작지 않아야 합니다. int 크기는 short 와 long 의 사이에 들어가면 되겠네요.

 

가장.큰 차이점은 얼마나 큰 정수를 나타낼 수 있나 하는 것인데, bit 의 크기를 보고 알수 있습니다. 0 에서 2의 bit 수 승-1만큼 표현이 가능하죠(부호형은 절반)

 

거의 모든 C 컴파일러는 위의 표준을 따르며 보통 CPU(물론 운영체제도 지원해야 함) 에 따른 각 자료형의 크기는 다음과 같습니다.

 

16 bit CPU:

  - short int : 16bit

  - int : 16bit

  - long int : 32bit

32 bit CPU:

  - short int : 16bit

  - int : 32bit

  - long int : 32bit

64 bit CPU:

  - short int : 16bit

  - int : 32bit

  - long int : 64bit

 

물론 위의 각 자료형 크기는 기본적인 크기입니다. 컴파일러에 따라, 운영체제에 따라, 컴파일러 옵션을 주기에 따라 자료형의 크기는 달라질 수 있습니다. 자신의 컴퓨터에서 sizeof 를 사용해서 각 자료형의 크기를 구해볼 수 있습니다.

 

그리고  short int 를 줄여서 short 라고 쓰며, long int 를 줄여서 long 이라고 씁니다. auto 를 생략하는 것과 비슷하죠. 함수내에서 쓰는 변수들은 모두 앞에 auto 가 생략되어 있습니다. 물론 명시적으로 이름을 다 써줘도 상관 없습니다. 다음의 두 문장은 함수내에서 같습니다.

 

short a;

 

auto short int a;