안녕하세요! 5기 gulee입니다. libft를 하면서 많은 동료분들과 대화를 해보고 size_t를 모르고 사용하시는 분들도 있겠구나 싶어서 이렇게 글로 작성하게 되었습니다!

size_t란 무엇일까?

우리는 libft를 하다보면 자료형에서 size_t라는 자료형을 처음 본 사람도 있을거고, 그 전에 stdio.h의 소스파일들을 뜯어본 사람들은 봤을 자료형이다.

그리고 size_t는 뒤에 _t라는 것에서 힌트가 있다! 바로 typedef 그러니까 다른 자료형에 별칭을 붙힌 것이다. 플랫폼에 따라 다른 자료형을 쓰기 위해서 size_t를 typedef 한 것이다.

이제부터 우리가 봐왔던 size_t라는 자료형에 대해서 알아보자!

우선, size_t를 설명드리기 전에 알아둬야 할 것이 있다. 그건 바로!!!!!! C라는 언어 대해서 조금은 알고 넘어가야 할 것 같다.

  1. C라는 언어는 우리가 흔하게 사용하고 있는 컴퓨터에서만 사용하는 언어가 아니다. 다양한 플랫폼에서 사용을 할 수 있는 언어이기 때문에 포팅문제를 항상 생각해야 하는 언어이다.

  2. 예전엔 16비트 컴퓨터가 흔하기도 했다. 그래서 C표준에서는 int자료형의 크기는 " 최소 16bit short보단 크다 " 로 설명이 되어있다. C표준에서는 자료형들을 찾아보면 최소단위만 있다는 걸 알 수 있다.

  3. size_t의 최소 크기는?

    size_t의 크기는 C99에 명시가 되어 있는데, 최소 16bit를 요구했다.

    여기서 딱! 생각나는 부분이 있을 것 같다. 바로 int자료형도 최소 16bit를 요구했던 것을 기억할 것이다. 그때 당시에 int자료형이 16비트 컴퓨터에서 모든 정수형을 다 표현할 수 있던 정수 자료형이 였기 때문인 것 같다.

    그래서 32bit 환경에서는 흔하게 unsigned int 로 되어 있는 경우가 많다.

1. size_t의 용도

2. size_t의 자료형의 크기

size_t라는 자료형은 현재 우리가 사용하고 있는 64bit os환경에서 컴파일 할때 대부분이 64bit로 컴파일 된다. unsigned long long 또는 unsigned long int 이런식으로 되어있을 것이다.