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 , _Alignof(с C11) и offsetof, в зависимости от модели данных.
| Разрядность | (с C99) |
Примечания
size_t может хранить максимальный размер теоретически возможного объекта любого типа (включая массив).
size_t обычно используется для индексирования массивов и подсчета циклов. Программы, использующие другие типы, такие как unsigned int, для индексирования массивов, могут завершиться ошибкой на, например, 64-битных системах, когда индекс превышает UINT_MAX или если он полагается на 32-битную модульную арифметику.
Пример
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
int main(void)
{
const size_t N = 100;
int numbers[N];
for (size_t ndx = 0; ndx < N; ++ndx)
numbers[ndx] = ndx;
printf("SIZE_MAX = %zu\n", SIZE_MAX);
size_t size = sizeof numbers;
printf("size = %zu\n", size);
}Возможный вывод:
SIZE_MAX = 18446744073709551615 size = 400
Ссылки
- Стандарт 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) |
|
| байтовый смещение от начала типа структуры до указанного члена (макрос-функция) |
|
Документация C++ для size_t |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/types/size_t