Есть 5 стандартных типов целое число без знака в C:
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
, не был бы переносимым. Код, который предполагает, что он дает size_t
, скорее всего, будет переносимым.
'ЬурейеЙ/* Эта часть зависит от реализации */size_t; ' – P0W
Возможный дубликат [unsigned int vs. size \ _t] (http://stackoverflow.com/questions/131803/unsigned-int-vs-size-t) –