У С є 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;