BackEnd / / 2015. 6. 29. 20:54

[포인터 관련 데이터 타입] size_t 타입의 이해

반응형

포인터 관련 데이터 타입

  • ptrdiff_t : 포인터 연산을 처리하기 위해 사용 << 클릭

size_t 타입의 이해

size_t 타입은 C 언어에서 임의의 객체가 가질 수 있는 최대 크기를 나타낸다. 크기를 표현하는 데 음수의 사용은 의미가 없기 때문에 size_t는 부호없는 정수를 사용한다. 

size_t 타입을 쓰는 이유는 시스템에서 주소 지정이 가능한 메모리 영역과 일치하는 크기를 선언하는 이식 가능한 방법을 제공하기 위해서다.

size_t 타입은 sizeof 연산자의 반환 타입으로 사용되며 많은 함수들의 인자로도 사용된다. 

malloc 함수와 strlen 함수가 size_t 타입을 반환하거나 인자로 사용하는 대표적인 함수이다.

size_t 타입의 변수에 저장된 값을 출력할 때는 주의가 필요하다.

size_t 타입은 부호없는 정수(unsigned int)이며, 출력 시 잘못된 형식 지정자를 선택하면 예상치 못한 값이 출력된다.

size_t 타입의 출력에는 &zu 지정자를 사용하도록 한다.

%zu 형식 지정자가 지원되지 않는 환경에서는 대안으로 %u 또는 %lu 지정자를 사용할 수 있다.

항상 이 타입의 변수에는 양의 정수를 할당해야 하는것을 잊지말자.


※ 일반적으로 size_t 타입은 퐁니터를 저장하는데 사용될 수 있지만, size_t 타입이 포인터와 같은 크기라고 가정해서는 안 된다. 포인터의 저장에는 intptr_t 타입을 사용하는것이 좋다.



참고문헌 : C 포인터의 이해와 활용. 리처드 리스 저

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유