Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

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 −

Types de base

Ce sont des types arithmétiques et sont ensuite classés en :(a) types entiers et (b) types à virgule flottante.

Types énumérés

Ce sont encore des types arithmétiques et ils sont utilisés pour définir des variables qui ne peuvent affecter que certaines valeurs entières discrètes tout au long du programme.

Le type void

Le spécificateur de type void indique qu'aucune valeur n'est disponible.

Types dérivés

Ils incluent (a) les types de pointeur, (b) les types de tableau, (c) les types de structure, (d) les types d'union et (e) les types de fonction.

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 −

La fonction renvoie comme vide

Il existe différentes fonctions en C qui ne renvoient aucune valeur ou vous pouvez dire qu'elles renvoient void. Une fonction sans valeur de retour a pour type de retour void. Par exemple, annuler la sortie (statut int) ;

Paramètres de la fonction comme void

Il existe différentes fonctions en C qui n'acceptent aucun paramètre. Une fonction sans paramètre peut accepter un vide. Par exemple, int rand(void);

Pointeurs à annuler

Un pointeur de type void * représente l'adresse d'un objet, mais pas son type. Par exemple, une fonction d'allocation de mémoire void *malloc( size_t size ); renvoie un pointeur vers void qui peut être converti en n'importe quel type de données.

Sr.No. Types et description
1
2
3

Langue C

  1. Types de commutateur
  2. Variables C# et types de données (primitifs)
  3. Types de données C++
  4. Types de données C
  5. Types de données Python
  6. Types de données Java (primitifs)
  7. Variable C, types de données, constantes
  8. 5 types de centres de données différents [avec exemples]
  9. 8 types de cloud computing différents en 2021