size_t, pid_t같은 자료형들은 primitive 자료형이라고 한다. primitive 자료형들은 sys/types.h 헤더파일에 정의되어있다.
int나 long long int 같은 자료형을 사용한다면, 나중에 크기나 데이터 표현 방식이 달라지면서 코드를 사용할 수 없게 될 수 있다.
int형은 16bit 운영체제 시절에는 2byte의 크기를 가졌었고 32bit 운영체제에선 4byte의 크기를 가진다.
이렇게 자료형의 크기가 바뀌게 되면 전체 코드 수정이 불가피 했었다.
그래서 헤더파일에 typedef를 사용해서 미리 unsigned int는 size_t처럼 미리 정의해두고, 만약 수정이 필요하면 헤더파일만 수정해서 자료형을 재정의해주면 된다. 결과적으로 소스 전체를 수정할 필요가 없게 된다.
ssize_t는 int, size_t는 unsigned int로 정의되어있다. pid_t도 찾아보면 int로 정의되어있다.
'프로그래밍 > C' 카테고리의 다른 글
C 함수 포인터, void 포인터 차이 (0) | 2022.05.22 |
---|---|
C 배열 포인터 array VS &array 차이, 디버깅을 통한 확인 (0) | 2022.05.22 |
open, read 시스템콜을 이용한 파일 입출력 (0) | 2022.05.03 |
scanf, gets, fgets 차이 (0) | 2022.04.01 |
EOF(End Of File) (0) | 2022.03.31 |