티스토리 뷰

TCP/IP 소켓 프로그래밍 공부를 하면서 ssize_t, size_t등 생소해 보이는 자료형들이 있었다.


이것들을 가리켜 고전적인(primitive) 자료형이라 한다. 이들은 sys/socket.h 헤더파일에 typedef 선언을 통해서 

정의되어 있다. 즉 새롭게 등장한 것이 아니라, int, float, long과 같은 기본 자료형을 가지고 이름만 바꾸어 정의한 것이다.


이 자료형들은 우리가 잘 알고 있는 기본 자료형에 또 다른 이름을 붙여 놓은 것이다. 기본 자료형의이름을 대신해

이러한 이름을 정의하고 사용하는 이유는 무엇일까?


지금은 int가 32비트라 한다. 보편적으로 사용되는 운영체제와 컴퓨터가 32비트이기 때문이다. 

과거 16비트 시절에는 int가 16비트였다. 그리고 현재는 32비트이고 미래에는 64비트 시대가 도래할 것이다.

이렇듯 시스템의 차이 또는 시간의 흐름에 따라 자료형의 표현 방식이 달라지므로 구현한 프로그램상에서 

선택된 자료형의 변경이 요구되기도 한다.


4바이트 자료형이 필요한 곳에 size_t or ssize_t를 사용하면, 코드의 변경을 최소화 할 수 있다. 나중에 이 두 가지의

typedef 선언만 변경해서 컴파일을 하면 되기 때문이다. 그래서 일반적으로 프로젝트를 진행시 기본 자료형 이름에 

별도의 이름을 부여하기 위해 많은 양의 typedef 선언이 추가된다. 

이러한 이유로 우리가 알고 있는 특정 자료형에 종속되지 않도록, 새로운 이름의 자료형을 정의해 한다.


'기타' 카테고리의 다른 글

stdafx 란?  (0) 2016.09.26
윈도우7에서 administrator 활성화하기  (0) 2016.09.19
pid_t 구조체에 대해서  (0) 2016.07.02
main()함수 외에 다른 함수를 만들어야 하는 이유  (0) 2016.04.06
Linux curl 명령어  (0) 2016.03.15
댓글