Spec-Zone.ru › C

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, в зависимости от модели данных.

Разрядность size_t не меньше 16.

(с 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>

См. также

ptrdiff_t
целое значение со знаком, возвращаемое при вычитании двух указателей
(typedef)
offsetof
байтовый смещение от начала типа структуры до указанного члена
(макрос-функция)
Документация 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API