У С є 5 стандартних цілих цілей без підпису:
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long
з різними вимогами до їх розмірів та діапазонів (коротко, діапазон кожного типу є підмножиною діапазону наступного типу, але деякі з них можуть мати той самий діапазон).
size_tє typedef(тобто псевдонімом) для деякого неподписаного типу (ймовірно, одного з перерахованих вище, але, можливо, розширеного неподписаного цілого числа , хоча це малоймовірно). Це тип, отриманий sizeofоператором.
В одній системі це може мати сенс використовувати unsigned intдля представлення розмірів; з іншого, це може мати більше сенсу використовувати unsigned longабо unsigned long long. ( size_tнавряд чи це буде unsigned charабо unsigned short, але це дозволено).
Мета size_t- позбавити програміста від турботи про те, який із заздалегідь визначених типів використовується для представлення розмірів.
Код, який передбачає, що sizeofприбутковість unsigned intне є портативною. Код, який передбачає, що він дає a size_t, швидше за все є портативним.
typedef /*This part is implementation dependent */ size_t;