함수들의 메뉴얼을 보다보면 매개변수의 형식이 size_t 인 경우가 있다.
그래서 size_t라는 형이 있는지 확인이 필요했고, 무엇을 의미하는지, 왜 쓰는지에 대해 알고싶었다.
사진을 보면 size_t 형은 결국 typedef unsigned int 형식이다. 다시말해 unsigned int형을 typedef로 선언한 별칭이다.
근데 그러면 unsigned int로 쓴다는 건 부호가 없는 정수형식이라는 것을 길기때문에 size_t 형식으로 나타낸걸로 생각하면 되나?
아니다.
size_t형식은 먼저 int나 unsigned int와 같이 운영체제의 비트에 따라 크기가 달라진다. x86(32비트)운영체제에서는 부호없는 32비트 정수(4byte)가 될 것이고 x64(64비트)운영체제에서는 부호없는 64비트의 정수(8byte)가 될 것이다.
그런데 unsigned int 와 int 는 64비트 OS라고해서 꼭 64비트의 정수가 되는게 아니다. 여전히 32비트일수도 있다. 그래서 size_t로 각 운영체제에 맞게 정수형식을 고정시키기 위해 size_t 형식을 쓰는것이다.
즉, 운영체제에 따라 변수의 메모리할당공간이 달라지는 것을 고정시키기 위한 형식이라는게 더욱 큰 이유가 될 것이다.
'4.C' 카테고리의 다른 글
왜 hex인코딩에서 unsigned char 로 선언해야할까? (0) | 2022.09.25 |
---|---|
함수원형에 나오는 restrict는 무엇을 의미할까? (0) | 2022.09.16 |
strtok_s가 thread safe 한 이유 (2) | 2022.09.16 |