size_t
|
Défini dans l'en-tête
<stddef.h>
|
||
|
Défini dans l'en-tête
<stdio.h>
|
||
|
Défini dans l'en-tête
<stdlib.h>
|
||
|
Défini dans l'en-tête
<string.h>
|
||
|
Défini dans l'en-tête
<time.h>
|
||
|
Défini dans l'en-tête
<uchar.h>
|
(depuis C11)
|
|
|
Défini dans l'en-tête
<wchar.h>
|
(depuis C95)
|
|
|
typedef
/*implementation-defined*/
size_t
;
|
||
size_t
est le type entier non signé du résultat de
sizeof
,
offsetof
et
_Alignof
(jusqu'en C23)
alignof
(depuis C23)
, selon le
modèle de données
.
|
La largeur en bits de
|
(depuis C99) |
Table des matières |
Notes
size_t
peut stocker la taille maximale d'un objet théoriquement possible de n'importe quel type (y compris les tableaux).
size_t
est couramment utilisé pour l'indexation de tableaux et le comptage de boucles. Les programmes qui utilisent d'autres types, tels que
unsigned
int
, pour l'indexation de tableaux peuvent échouer, par exemple sur des systèmes 64 bits lorsque l'index dépasse
UINT_MAX
ou s'il repose sur une arithmétique modulaire 32 bits.
Implémentation possibletypedef typeof ( sizeof ( 0 ) ) size_t ; |
(depuis C23) |
Exemple
#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); }
Sortie possible :
sum = 5050 size = 404 SIZE_MAX = 18446744073709551615
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.19 Définitions communes <stddef.h> (p: TBD)
-
- 7.20.3 Limites des autres types entiers (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.19 Définitions communes <stddef.h> (p: 211)
-
- 7.20.3 Limites des autres types entiers (p: 215)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.19 Définitions communes <stddef.h> (p: 288)
-
- 7.20.3 Limites des autres types entiers (p: 293)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.17 Définitions communes <stddef.h> (p: 253)
-
- 7.18.3 Limites des autres types entiers (p: 258)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.1.6 Définitions communes <stddef.h>
Voir aussi
|
type entier signé renvoyé lors de la soustraction de deux pointeurs
(typedef) |
|
|
décalage en octets depuis le début d'un type struct jusqu'au membre spécifié
(macro de fonction) |
|
|
Documentation C++
pour
size_t
|
|