_t는 구조체에 붙이는 거라기 보다는 user-defined type에 붙이는거죠.
uint8_t, uint32_t등은 stdint.h를 보면 알 수 있습니다.
platform마다 datatype의 크기가 다르기 때문에 portability를 지원하기 위해서
uint8_t,uint32_t등이 있습니다.
_t 같은 data type을 전문 용어로 Primitive System Data Type 라고 불러요...
정수 비트 길이와 바이트가 문제가 될 때 char 또는 short, int, long, long long 같은 데이터 형식을 사용하지 않고 고정 길이 데이터 형식을 이용한다.
C 언어의 표준으로 규정되어 있는 부호 및 부호 없는 고정 길이 정수는 위와 같다.
이유는 다음과 같다. ISO가 개발한 C 언어 표준 "ISO / IEC 9899"에서는 char 또는 short, int, long, long long 같은 데이터 형식의 길이(비트 길이)에 대한 처리 계에 마다 정의하는 것이 허용되며 이식성 문제를 일으킨다.
1999년에 개정된 "ISO / IEC 9899:1999"에서도 이 문제의 잠재적인 원인은 해결되지 않았지만 표 1에 표시한 비트 길이를 고유하게 정의한 데이터 형식이 추가되었다. 이 새로운 형식은 "stdint.h"라는 헤더 파일에 정의되어있다.
한마디로 32비트와 64비트의 데이터 길이의 변화에 따른 버그,에러를 막기 위해서 define해서 사용하는거~ 리눅스, 임베디드 계열에서는 많이 사용한단다.
'app > C' 카테고리의 다른 글
MFC 다이얼로그 그림(이미지) 띄우기 (0) | 2010.03.23 |
---|---|
visual studio 소스 들여쓰기 (0) | 2010.02.28 |
오라클 10g xp 설치하기~ (0) | 2010.02.25 |
char* <-> CString (0) | 2010.02.17 |
mt.exe : general error c101008a: Failed to save the updated manifaest to the file (0) | 2010.02.17 |