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
, для индексации массивов могут завершиться ошибкой, например, на 64-битных системах, когда индекс превышает
UINT_MAX
или если он полагается на 32-битную модульную арифметику.
Возможная реализация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> (стр.: TBD)
-
- 7.20.3 Границы других целочисленных типов (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.19 Общие определения <stddef.h> (стр: 211)
-
- 7.20.3 Границы других целочисленных типов (стр: 215)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.19 Общие определения <stddef.h> (стр: 288)
-
- 7.20.3 Пределы других целочисленных типов (стр: 293)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.17 Общие определения <stddef.h> (стр: 253)
-
- 7.18.3 Пределы других целочисленных типов (стр: 258)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.1.6 Общие определения <stddef.h>
Смотрите также
|
знаковый целочисленный тип, возвращаемый при вычитании двух указателей
(typedef) |
|
|
смещение в байтах от начала структуры до указанного члена
(function macro) |
|
|
C++ documentation
для
size_t
|
|