Programmation D - Types de données

Dans le langage de programmation D, les types de données 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 de bits stocké est interprété.

Les types en D peuvent être classés comme suit -

N ° Sr. Types et description
1

Basic Types

Ce sont des types arithmétiques et se composent des trois types: (a) entier, (b) virgule flottante et (c) caractère.

2

Enumerated types

Ce sont à nouveau des types arithmétiques. Ils sont utilisés pour définir des variables qui ne peuvent se voir attribuer que certaines valeurs entières discrètes dans tout le programme.

3

The type void

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

4

Derived types

Ils comprennent (a) les types de pointeurs, (b) les types de tableaux, (c) les types de structure, (d) les types d'union et (e) les types de fonction.

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 alors que d'autres types seront traités dans les chapitres à venir.

Types entiers

Le tableau suivant répertorie les types d'entiers standard avec leurs tailles de stockage et leurs plages de valeurs -

Type Taille de stockage Plage de valeurs
booléen 1 octet faux ou vrai
octet 1 octet -128 à 127
ubyte 1 octet 0 à 255
int 4 octets -2 147 483 648 à 2 147 483 647
uint 4 octets 0 à 4 294 967 295
court 2 octets -32 768 à 32 767
ushort 2 octets 0 à 65 535
longue 8 octets -9223372036854775808 à 9223372036854775807
ulong 8 octets 0 à 18446744073709551615

Pour obtenir la taille exacte d'un type ou d'une variable, vous pouvez utiliser le sizeofopérateur. Le type d' expression . (Sizeof) donne la taille de stockage de l'objet ou du type en octets. L'exemple suivant obtient la taille du type int sur n'importe quelle machine -

import std.stdio; 
 
int main() { 
   writeln("Length in bytes: ", ulong.sizeof); 

   return 0; 
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Length in bytes: 8

Types à virgule flottante

Le tableau suivant mentionne les types à virgule flottante standard avec les tailles de stockage, les plages de valeurs et leur objectif -

Type Taille de stockage Plage de valeurs Objectif
flotte 4 octets 1.17549e-38 à 3.40282e + 38 6 décimales
double 8 octets 2.22507e-308 à 1.79769e + 308 15 décimales
réel 10 octets 3.3621e-4932 à 1.18973e + 4932 soit le plus grand type à virgule flottante pris en charge par le matériel, soit le double; celui qui est le plus grand
ifloat 4 octets 1.17549e-38i à 3.40282e + 38i type de valeur imaginaire du flottant
idiot 8 octets 2.22507e-308i à 1.79769e + 308i type de valeur imaginaire de double
irréel 10 octets 3.3621e-4932 à 1.18973e + 4932 type de valeur imaginaire réel
flotter 8 octets 1.17549e-38 + 1.17549e-38i à 3.40282e + 38 + 3.40282e + 38i type de nombre complexe composé de deux flottants
cdouble 16 octets 2.22507e-308 + 2.22507e-308i à 1.79769e + 308 + 1.79769e + 308i type de nombre complexe composé de deux doubles
creal 20 octets 3.3621e-4932 + 3.3621e-4932i à 1.18973e + 4932 + 1.18973e + 4932i type de nombre complexe composé de deux réels

L'exemple suivant imprime l'espace de stockage occupé par un type float et ses valeurs de plage -

import std.stdio;

int main() { 
   writeln("Length in bytes: ", float.sizeof); 

   return 0; 
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant sous Linux -

Length in bytes: 4

Types de caractères

Le tableau suivant répertorie les types de caractères standard avec les tailles de stockage et leur objectif.

Type Taille de stockage Objectif
carboniser 1 octet Unité de code UTF-8
wchar 2 octets Unité de code UTF-16
dchar 4 octets Unité de code UTF-32 et point de code Unicode

L'exemple suivant imprime l'espace de stockage occupé par un type char.

import std.stdio;

int main() {
   writeln("Length in bytes: ", char.sizeof);
   
   return 0;
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Length in bytes: 1

Le type de vide

Le type void spécifie qu'aucune valeur n'est disponible. Il est utilisé dans deux types de situations -

N ° Sr. Types et description
1

Function returns as void

Il y a diverses fonctions dans D qui ne retournent pas de valeur ou vous pouvez dire qu'elles retournent void. Une fonction sans valeur de retour a le type de retour comme void. Par exemple,void exit (int status);

2

Function arguments as void

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

Le type vide peut ne pas vous être compris à ce stade, alors continuons et nous couvrirons ces concepts dans les prochains chapitres.