C - Types de données
Les types de données en c font référence à un système étendu utilisé pour déclarer des variables ou des fonctions de différents types. Le type d'une variable détermine l'espace qu'elle occupe dans le stockage et la façon dont le modèle binaire stocké est interprété.
Les types en C peuvent être classés comme suit −
Sr.No. | Types et description |
---|---|
1 | |
2 | |
3 | |
4 |
Les types de tableau et les types de structure sont appelés collectivement les types d'agrégat. Le type d'une fonction spécifie le type de la valeur de retour de la fonction. Nous verrons les types de base dans la section suivante, tandis que d'autres types seront couverts dans les prochains chapitres.
Types entiers
Le tableau suivant fournit les détails des types d'entiers standard avec leurs tailles de stockage et leurs plages de valeurs −
Type | Taille de stockage | Plage de valeurs |
---|---|---|
caractère | 1 octet | -128 à 127 ou 0 à 255 |
caractère non signé | 1 octet | 0 à 255 |
caractère signé | 1 octet | -128 à 127 |
int | 2 ou 4 octets | -32 768 à 32 767 ou -2 147 483 648 à 2 147 483 647 |
entier non signé | 2 ou 4 octets | 0 à 65 535 ou 0 à 4 294 967 295 |
court | 2 octets | -32 768 à 32 767 |
court non signé | 2 octets | 0 à 65 535 |
longue | 8 octets ou (4 octets pour un système d'exploitation 32 bits) | -9223372036854775808 à 9223372036854775807 |
long non signé | 8 octets | 0 à 18446744073709551615 |
Pour obtenir la taille exacte d'un type ou d'une variable sur une plate-forme particulière, vous pouvez utiliser le sizeof opérateur. Les expressions sizeof(type) donne la taille de stockage de l'objet ou du type en octets. Ci-dessous est un exemple pour obtenir la taille de différents types sur une machine en utilisant différentes constantes définies dans le fichier d'en-tête limits.h −
Démo en direct#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("CHAR_BIT : %d\n", CHAR_BIT); printf("CHAR_MAX : %d\n", CHAR_MAX); printf("CHAR_MIN : %d\n", CHAR_MIN); printf("INT_MAX : %d\n", INT_MAX); printf("INT_MIN : %d\n", INT_MIN); printf("LONG_MAX : %ld\n", (long) LONG_MAX); printf("LONG_MIN : %ld\n", (long) LONG_MIN); printf("SCHAR_MAX : %d\n", SCHAR_MAX); printf("SCHAR_MIN : %d\n", SCHAR_MIN); printf("SHRT_MAX : %d\n", SHRT_MAX); printf("SHRT_MIN : %d\n", SHRT_MIN); printf("UCHAR_MAX : %d\n", UCHAR_MAX); printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX); printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX); printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX); return 0; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant sous Linux −
CHAR_BIT : 8 CHAR_MAX : 127 CHAR_MIN : -128 INT_MAX : 2147483647 INT_MIN : -2147483648 LONG_MAX : 9223372036854775807 LONG_MIN : -9223372036854775808 SCHAR_MAX : 127 SCHAR_MIN : -128 SHRT_MAX : 32767 SHRT_MIN : -32768 UCHAR_MAX : 255 UINT_MAX : 4294967295 ULONG_MAX : 18446744073709551615 USHRT_MAX : 65535
Types à virgule flottante
Le tableau suivant fournit les détails des types à virgule flottante standard avec des tailles de stockage et des plages de valeurs et leur précision −
Type | Taille de stockage | Plage de valeurs | Précision |
---|---|---|---|
flottant | 4 octets | 1.2E-38 à 3.4E+38 | 6 décimales |
doubler | 8 octets | 2.3E-308 à 1.7E+308 | 15 décimales |
long double | 10 octets | 3.4E-4932 à 1.1E+4932 | 19 décimales |
Le fichier d'en-tête float.h définit les macros qui vous permettent d'utiliser ces valeurs et d'autres détails sur la représentation binaire des nombres réels dans vos programmes. L'exemple suivant imprime l'espace de stockage pris par un type flottant et ses valeurs de plage −
Démo en direct#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("Storage size for float : %d \n", sizeof(float)); printf("FLT_MAX : %g\n", (float) FLT_MAX); printf("FLT_MIN : %g\n", (float) FLT_MIN); printf("-FLT_MAX : %g\n", (float) -FLT_MAX); printf("-FLT_MIN : %g\n", (float) -FLT_MIN); printf("DBL_MAX : %g\n", (double) DBL_MAX); printf("DBL_MIN : %g\n", (double) DBL_MIN); printf("-DBL_MAX : %g\n", (double) -DBL_MAX); printf("Precision value: %d\n", FLT_DIG ); return 0; }
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant sous Linux −
Storage size for float : 4 FLT_MAX : 3.40282e+38 FLT_MIN : 1.17549e-38 -FLT_MAX : -3.40282e+38 -FLT_MIN : -1.17549e-38 DBL_MAX : 1.79769e+308 DBL_MIN : 2.22507e-308 -DBL_MAX : -1.79769e+308 Precision value: 6
Le type vide
Le type void spécifie qu'aucune valeur n'est disponible. Il est utilisé dans trois types de situations −
Sr.No. | Types et description |
---|---|
1 | |
2 | |
3 |
Langue C
- Types de commutateur
- Variables C# et types de données (primitifs)
- Types de données C++
- Types de données C
- Types de données Python
- Types de données Java (primitifs)
- Variable C, types de données, constantes
- 5 types de centres de données différents [avec exemples]
- 8 types de cloud computing différents en 2021