[C/C++] size_t 와unsigned int 차이점

Yongmin Park·2022년 7월 7일
1

C/CPP

목록 보기
1/1
post-thumbnail

size_t 란??

  • C/C++ 에서 쓰이는 데이터 타입이다. C99 표준에 정의되어 있다. [나무위키](https://namu.wiki/w/size_t)
  • size_t는 해당 시스템에서 어떤 객체나 값이 포함할 수 있는 최대 크기의 데이터를 표현하는 타입으로 반드시 unsigned 형으로 나타낸다. stddef.h 및 cstddef 헤더에 정의되어 있다.
c99원문

size_t can store the maximum size of a theoretically possible object of any type

결론부터 보는 size_t 를 사용하는 이유

  • 어떤 타입의 사이즈든지 최대 사이즈를 보장한다.

size_t는 어떤 타입의 사이즈 이던지 간에 충분한 bytes를 가진 unsigned int이다.
size_t는 모든 타입에 상응하는 용량을 가지고있고, vecter, array에 index도 표현하기 쉽다.

'의도한 것을 보장 받을 수 있다.' 부가 설명을 하자면, size_t는 32bit 운영체제에서 부호 없는 32비트 정수이고, 64bit 운영체제에선 부호 없는 64bit 정수 이다. (가장 큰 크기를 보장 받을 수 있다.)
하지만 unsigned int 또는 int는 64bit OS라고 해서 꼭 64bit 정수가 아닐 수 있다. 여전히 32bit일 수도 있다. 이게 size_t와 unsigned int형의 차이이다.

profile
기록으로 기적을

0개의 댓글