Wat is size_t in C?

Ik raak in de war met size_t in C. Ik weet dat het teruggegeven wordt door de sizeof operator. Maar wat is het precies? Is het een data type?

Laten we zeggen dat ik een voor lus heb:

for(i = 0; i < some_size; i++)

Moet ik int i; of size_t i; gebruiken?

Oplossing

Van Wikipedia:

Volgens de ISO C standaard van 1999 (C99), size_t is een unsigned integer type van ten minste 16 bit (zie secties 7.17 en 7.18.3).

size_t is een unsigned datatype gedefinieerd door verschillende C/C++ standaarden, b.v. de C99 ISO/IEC 9899 standaard, dat is gedefinieerd in stddef.h.1 Het kan verder worden geïmporteerd door opname van stdlib.h als dit bestand intern sub bevat stddef.h.

Dit type wordt gebruikt om de grootte van een object. Bibliotheek functies die afmetingen aannemen of teruggeven verwachten dat ze van het type zijn of het return type hebben van size_t. Verder, de meest vaak gebruikte compiler-gebaseerde operator sizeof moet evalueren naar een constante waarde die compatibel is met size_t.

Als implicatie is size_t een type dat gegarandeerd elke array index kan bevatten.

Commentaren (9)

size_t is een niet-tekenend type. Het kan dus geen negatieve waarden voorstellen (

Commentaren (17)

De man pagina voor types.h zegt:

size_t moet een unsigned integer type zijn

Commentaren (0)