size_t en C
Ce tutoriel discutera de l’utilisation de la commande size_t
pour définir une variable de type de données non signée en C.
la size_t
en C
La commande size_t
définit une variable de type de données non signée en C. Un type de données non signé ne peut pas être négatif, donc la commande size_t
est un type de données comme int
et est utilisée dans le cas de valeurs entières positives.
Par exemple, si nous voulons compter quelque chose ou trouver la longueur d’un tableau, nous pouvons utiliser la commande size_t
pour définir une variable qui contiendra une valeur positive car le comptage et la longueur d’un tableau commencent à 0, et il ne peut pas être négatif.
La fonction sizeof()
renvoie la taille d’un nombre en octets, et nous pouvons utiliser la commande size_t
pour stocker la valeur renvoyée par la fonction sizeof()
.
Le type de données size_t
utilise au moins 16 bits de mémoire pour stocker une valeur.
Le type de retour de nombreuses fonctions telles que strcspn()
et strlen()
est de type de données size_t
. Pour utiliser le type de données size_t
, nous devons inclure les fichiers d’en-tête stddef.h
et stdint.h
car le type de données size_t
dépend de ces deux fichiers d’en-tête.
Par exemple, définissons un tableau et trouvons sa taille à l’aide de la fonction sizeof()
et stockons-le dans une variable de type de données size_t
. Voir le code ci-dessous.
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
int main(void) {
const size_t len = 100;
int My_array[len];
for (size_t i = 0; i < len; ++i) My_array[i] = i;
size_t size = sizeof(My_array);
printf("size of array = %lu\n", size);
}
Production:
size of array = 400
Dans le code ci-dessus, la variable len
est utilisée pour stocker la longueur du tableau, et nous avons utilisé une boucle for
pour remplir le tableau My_array
. Nous avons utilisé la fonction printf()
pour imprimer la taille du tableau donné.
Nous avons utilisé la chaîne %lu
dans la fonction printf()
car la sortie de la fonction sizeof()
est un entier long non signé de type size_t
.
Nous avons utilisé la chaîne \n
dans la fonction printf()
pour ajouter une nouvelle ligne après l’impression de la valeur de la variable size
, sinon le curseur se déplacera vers la nouvelle ligne.
Nous pouvons utiliser le type de données size_t
pour stocker la taille d’un objet, et si nous voulons stocker une autre valeur qui peut également être négative, nous devons utiliser un autre type de données comme int
.
Si nous voulons trouver la différence entre deux valeurs de type de données size_t
, nous ne pouvons pas trouver le résultat exact dans certains cas ; si la première valeur est inférieure à la deuxième valeur, le résultat devrait être négatif, mais le résultat sera positif dans ce cas car la différence est calculée entre deux valeurs non signées.
Dans ce cas, nous devons utiliser un autre type de données comme int
ou float
. Si l’implémentation du type de données size_t
est de 64 bits, elle aura une largeur de 64 bits ; si l’implémentation est 32 bits, elle aura une largeur de 32 bits, et ainsi de suite.