size_t en C

Ammar Ali 12 octobre 2023
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.

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook