size_t
|
헤더에 정의됨
<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 이후)
연산자의 결과에 대한 부호 없는 정수 타입으로,
데이터 모델
에 따라 결정됩니다.
|
|
(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) |
|
|
구조체 타입의 시작부터 지정된 멤버까지의 바이트 오프셋
(함수 매크로) |
|
|
C++ documentation
for
size_t
|
|