etc) il est possible dans la plupart des langages de programmation de définir ses propres types. Il s’agit en fait de rassembler une ou plusieurs variables, qui peuvent être de types différents, et de les regrouper sous un seul nom afin de les manipuler plus facilement. Ce sont les enregistrements qui permettent de faire ça, en langage C, ces enregistrements sont nommées des structures (en anglais struct)
de la forme a + b*i où a et b sont des nombres réels et le symbole i avec i2 = -1 En définit un enregistrement en C comme suit: Pour declarer un variable nommé x de type complexe: x.reel: x.imag: struct complexe x; struct complexe { double reel; double imag; };
nouveau type à l’intérieur d’une function/procédure alors il ne sera visible qu’à l’intérieur de cette fonction. Pour qu’un type composé soit visible dans toutes les fonctions/procédures d’un fichier, il faut le déclarer au début du fichier, à l’extérieur de toute fonction. Note: La même chose s’applique à la déclaration de variables: c’est ce que l’on appelle les variables globales. #include <stdio.h> struct complexe { double reel; double imag; }; int funct1(...){ struct complexe x; …} int funct2(...){ struct complexe x; …} int main(...){ struct complexe x; …}
écrire autant de “struct complexe” Le C fournit une fonctionnalité appelée typedef servant à créer des noms de nouveaux types de donnéees. Exemple: Le nom Complexe devient synonyme de struct complexe, CAD que typedef remplace struct complexe par Complexe typedef struct complexe Complexe;
C en utilisant typedef comme suit: Pour déclarer un variable nommé x de type complexe, on peut écrire directement: Complexe x; Au lieu de: typedef struct { double reel; double imag; } Complexe; struct complexe x;
x.imag = 3; y.reel = 8; y.imag = 9; if(x == y) { printf(“x et y sont égaux”); } -> Erreur de compilation: On ne peut pas comparer deux enregistrements en C avec l’opérateur de comparaison (==)
composé peuvent être eux mêmes des variables de types composé différents. En C, cela se traduit par le fait qu’une structure peut être membre d’une autre structure.
de types composés tout comme on peut faire des tableaux de type de base. Exemple: Complexe tab[1000]; for (i=0; i<1000; i=i+1){ tab[i].reel = 0; tab[i].imag = 0; } tab[0].reel tab[1].reel tab[999].reel ... tab: tab[0].imag tab[1].imag tab[999].imag ...
les principales informations sur ses clients. On associe à chaque client une variable dont le type est une structure (cad un enregistrement) qui pourrais ressembler à ce qui suit. struct client{ char prenom[15]; char nom[15]; int solde; int type_de_compte; int derniere_transaction; };