Namespaces
Variants

size_t

From cppreference.net
< c ‎ | types
Definiert in Header <stddef.h>
Definiert in Header <stdio.h>
Definiert in Header <stdlib.h>
Definiert in Header <string.h>
Definiert in Header <time.h>
Definiert in Header <uchar.h>
(seit C11)
Definiert in Header <wchar.h>
(seit C95)
typedef /*implementation-defined*/ size_t ;

size_t ist der vorzeichenlose Ganzzahltyp des Ergebnisses von sizeof , offsetof und _Alignof (bis C23) alignof (seit C23) , abhängig vom Datenmodell .

Die Bitbreite von size_t beträgt mindestens 16.

(since C99)

Inhaltsverzeichnis

Hinweise

size_t kann die maximale Größe eines theoretisch möglichen Objekts jedes Typs (einschließlich Arrays) speichern.

size_t wird häufig für Array-Indizierung und Schleifenzählung verwendet. Programme, die andere Typen wie unsigned int für die Array-Indizierung verwenden, können auf z.B. 64-Bit-Systemen fehlschlagen, wenn der Index UINT_MAX überschreitet oder wenn er auf 32-Bit-modularer Arithmetik basiert.

Mögliche Implementierung

typedef typeof ( sizeof ( 0 ) ) size_t ;

(seit C23)

Beispiel

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
int main(void)
{
    const size_t N = 101;
    int numbers[N];
    size_t sum = 0;
    for (size_t ndx = 0; ndx < N; ++ndx)
        sum += numbers[ndx] = ndx;
    size_t size = sizeof numbers;
    printf("sum = %zu\n", sum);
    printf("size = %zu\n", size);
    printf("SIZE_MAX = %zu\n", SIZE_MAX);
}

Mögliche Ausgabe:

sum = 5050
size = 404
SIZE_MAX = 18446744073709551615

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: TBD)
  • 7.20.3 Grenzen anderer Ganzzahltypen (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: 211)
  • 7.20.3 Grenzen anderer Ganzzahltypen (S: 215)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: 288)
  • 7.20.3 Grenzen anderer Ganzzahltypen (S: 293)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.17 Allgemeine Definitionen <stddef.h> (S: 253)
  • 7.18.3 Grenzwerte anderer Ganzzahltypen (S: 258)
  • C89/C90 Standard (ISO/IEC 9899:1990):
  • 4.1.6 Allgemeine Definitionen <stddef.h>

Siehe auch

vorzeichenbehafteter Ganzzahltyp, der bei der Subtraktion zweier Zeiger zurückgegeben wird
(typedef)
Byte-Offset vom Anfang eines Struct-Typs zum angegebenen Mitglied
(Funktionsmakro)