|
김인구.구야 님이 쓰신 글 :
: stdio.h 파일을 보시면
:
: #ifndef _SIZE_T
: #define _SIZE_T
: typedef unsigned size_t;
: #endif
:
: 이런 문구가 있습니다.
: 부호없는 int형입니다.
:
: 보통 전
: typedef unsigned int WORD;
: 라고 쓰는데
: 저도 첨 알았습니다.
:
: t의 사이즈를 말하는거 같은데 t가 어떤 의미인지
size_t의 t는 type을 말합니다.
size를 나타내는 type이죠.
ANSI C에서도 쓰이지만, ANSI C++에서도 더 많이 사용됩니다.
주로 STL의 string, vector, deque의 인덱스(즉, operator[] 등에서)로 쓰이는 타입입니다.
예를 들어 다음과 같은 코드를 쓰면
string sample = "Hello, World!";
for (int i = 0; i < sample.size(); ++i) // 여기서 warning이 뜹니다.
cout.put(sample[i]);
signed와 unsigned 타입을 비교하려고 하므로 경고가 뜨게 됩니다.
경고를 없애려면 int 대신에 size_t를 쓰세요.(물론 unsigned로 해도 되지만, 관례상...)
|