In C gibt es 5 Standard-Ganzzahltypen ohne Vorzeichen:
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long
mit verschiedenen Anforderungen an ihre Größen und Bereiche (kurz gesagt, der Bereich jedes Typs ist eine Teilmenge des Bereichs des nächsten Typs, aber einige von ihnen haben möglicherweise denselben Bereich).
size_t
ist ein typedef
(dh ein Alias) für einen vorzeichenlosen Typ (wahrscheinlich einer der oben genannten, aber möglicherweise ein erweiterter vorzeichenloser Ganzzahltyp , obwohl dies unwahrscheinlich ist). Dies ist der Typ, den der sizeof
Bediener angibt .
Auf einem System kann es sinnvoll sein, unsigned int
Größen darzustellen. auf einem anderen könnte es sinnvoller sein, unsigned long
oder zu verwenden unsigned long long
. ( size_t
ist wahrscheinlich nicht entweder unsigned char
oder unsigned short
, aber das ist erlaubt).
Der Zweck von size_t
besteht darin, den Programmierer davon zu entlasten, sich Gedanken darüber zu machen, welcher der vordefinierten Typen zur Darstellung von Größen verwendet wird.
Code, der sizeof
Erträge voraussetzt, unsigned int
wäre nicht portabel. Code, der davon ausgeht, dass er a ergibt, size_t
ist eher portabel.
typedef /*This part is implementation dependent */ size_t;