p.350 질문 있습니다.
, 거_ 사람_참님이 작성p.350 참고를 보면
32비트에 서식 지정자로 %u 를 쓰는 이유와
64비트에 서식 지정자로 %lu 를 쓰는 이유가 이유가 궁금합니다.
int와 char 이기 때문에 %d 로 해야 하지 않나 궁금합니다.
Re: p.350 질문 있습니다.
, 도장_ 관리자님이 작성타입을 읽는 법을 UNIT 33에서 다시 복습하세요.
int의 타입은 int라고 읽습니다.
int *의 타입은 pointer to int라고 읽습니다.
int는 기본 타입(primary type)이고,
int *은 파생 타입(derived type)입니다.
학습 진도에 따라 다르지만,
나만의 자료형을 만드는 것으로는 typedef, struct 등이 있습니다.
typedef unsigned int size_t;
size_t 타입을 하나 만든 것입니다.
unsigend int는 기본 타입이지만, size_t는 파생 타입입니다.
sizeof 연산자가 반환하는 타입은 C 언어 표준에서는 size_t이며,
보통은 unsigned int로 정의되어 있습니다. 따라서 32비트라면 %u, 64비트라면 %lu를 쓰는 것이 맞습니다.
char는 1바이트이지만, char *은 pointer to char이므로 32비트라면 4바이트, 64비트라면 8바이트입니다. 둘은 타입도 다르고, 크기도 다릅니다.