Namespaces
Variants

size_t

From cppreference.net
< c ‎ | types
헤더에 정의됨 <stddef.h>
헤더에 정의됨 <stdio.h>
헤더에 정의됨 <stdlib.h>
헤더에 정의됨 <string.h>
헤더에 정의됨 <time.h>
헤더에 정의됨 <uchar.h>
(C11 이후)
헤더에 정의됨 <wchar.h>
(C95 이후)
typedef /*implementation-defined*/ size_t ;

size_t sizeof , offsetof _Alignof (C23 이전) alignof (C23 이후) 연산자의 결과에 대한 부호 없는 정수 타입으로, 데이터 모델 에 따라 결정됩니다.

size_t 의 비트 너비는 16 이상입니다.

(C99부터)

목차

참고 사항

size_t 는 모든 유형(배열 포함)의 이론적으로 가능한 객체의 최대 크기를 저장할 수 있습니다.

size_t 는 일반적으로 배열 인덱싱과 루프 카운팅에 사용됩니다. 배열 인덱싱에 unsigned int 와 같은 다른 타입을 사용하는 프로그램은 인덱스가 UINT_MAX 를 초과하거나 32비트 모듈러 연산에 의존하는 경우, 예를 들어 64비트 시스템에서 실패할 수 있습니다.

가능한 구현

typedef typeof ( sizeof ( 0 ) ) size_t ;

(C23부터)

예제

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
int main(void)
{
    const size_t N = 101;
    int numbers[N];
    size_t sum = 0;
    for (size_t ndx = 0; ndx < N; ++ndx)
        sum += numbers[ndx] = ndx;
    size_t size = sizeof numbers;
    printf("sum = %zu\n", sum);
    printf("size = %zu\n", size);
    printf("SIZE_MAX = %zu\n", SIZE_MAX);
}

가능한 출력:

sum = 5050
size = 404
SIZE_MAX = 18446744073709551615

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.19 공통 정의 <stddef.h> (p: TBD)
  • 7.20.3 다른 정수형의 한계 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.19 공통 정의 <stddef.h> (p: 211)
  • 7.20.3 기타 정수형의 한계 (p: 215)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.19 공통 정의 <stddef.h> (p: 288)
  • 7.20.3 기타 정수형의 한계 (p: 293)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.17 공통 정의 <stddef.h> (p: 253)
  • 7.18.3 기타 정수형의 한계 (p: 258)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.1.6 공통 정의 <stddef.h>

참고 항목

두 포인터를 뺄 때 반환되는 부호 있는 정수형
(typedef)
구조체 타입의 시작부터 지정된 멤버까지의 바이트 오프셋
(함수 매크로)