size_t
Von cppreference.com
| Definiert im Header <stddef.h> |
||
| Definiert in Header <stdio.h> |
||
| Definiert im Header <stdlib.h> |
||
| Definiert in Header <string.h> |
||
| Definiert in Header <time.h> |
||
| Definiert im Header <uchar.h> |
(seit C11) |
|
| Definiert in Header <wchar.h> |
(seit C95) |
|
| typedef /*implementierungsdefiniert*/ 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 |
(seit C99) |
Inhalt |
[bearbeiten] Hinweise
size_t kann die maximale Größe eines theoretisch möglichen Objekts jeden Typs (einschließlich Arrays) speichern.
size_t wird üblicherweise 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 sie sich auf 32-Bit-Modul-Arithmetik verlassen.
[bearbeiten] Mögliche Implementierung
typedef typeof(sizeof(0)) size_t; // valid since C23 |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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
[bearbeiten] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.19 Common definitions <stddef.h> (p: TBD)
- 7.20.3 Limits of other integer types (p: TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.19 Common definitions <stddef.h> (p: 211)
- 7.20.3 Limits of other integer types (p: 215)
- C11-Standard (ISO/IEC 9899:2011)
- 7.19 Common definitions <stddef.h> (p: 288)
- 7.20.3 Limits of other integer types (p: 293)
- C99-Standard (ISO/IEC 9899:1999)
- 7.17 Common definitions <stddef.h> (p: 253)
- 7.18.3 Limits of other integer types (p: 258)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.1.6 Common definitions <stddef.h>
[bearbeiten] Siehe auch
| vorzeichenbehafteter Ganzzahltyp, der bei der Subtraktion zweier Zeiger zurückgegeben wird (typedef) | |
| Byte-Offset vom Anfang eines Strukturtyps zu einem angegebenen Element (function macro) | |
| C++ Dokumentation für size_t
| |