Systèmes Temps Réel de Contrôle-commande by Francis Cottet / Emmanuel Grolleau

Systèmes Temps Réel de Contrôle-commande by Francis Cottet / Emmanuel Grolleau

Auteur:Francis Cottet / Emmanuel Grolleau [Grolleau, Francis Cottet / Emmanuel]
La langue: fra
Format: epub
Tags: Informatique
ISBN: 9782100528509
Google: 9WA_5LPUNZkC
Éditeur: Dunod
Publié: 2005-04-05T13:31:49+00:00


6 • Programmation

6.1 Programmation

des systèmes multitâches

C, Ada et LabVIEW

Noter l’emploi obligatoire du mot clé struct lors de l’utilisation du type. Pour éviter cette lourdeur syntaxique, on peut utiliser le mot clé typedef qui permet de nommer un type. Dans l’exemple ci-après, le même type enregistrement est déclaré de façon anonyme, mais défini par le nom Complexe :

typedef struct {

float reel;

float imaginaire;

} Complexe;

Complexe C; /* Déclaration d’une variable de type Complexe */

Complexe C2={1,3.5}; /* C2 vaut 1+3.5i */

Un type énuméré, rarement utilisé en langage C, se définit avec le mot clé enum : enum couleurs {rouge, vert, bleu};

/* En fait, rouge vaut 0, vert vaut 1 et bleu vaut 2 */

enum couleurs couleur=vert; /* définition de la variable couleur, valant vert */

Afin d’éviter la lourdeur de répétition du mot clé enum, on utilise souvent le nom-mage de type, comme pour les types enregistrement :

typedef enum {rouge, vert, bleu} couleurs;

/* Ici, enum {rouge, vert, bleu} est nommé couleurs */

couleurs couleur=vert; /* définition de la variable couleur, valant vert */

Le constructeur de type union permet de définir une superposition (union) de plusieurs types.

typedef union {

char c;

short s;

} mon_union; /* les champs c et s sont superposés */

/* la taille de l’union est max(sizeof(char),sizeof(short))=2 octets

*/

mon_union m;

m.s = 0x8054; /* m.s vaut 0x8054, du même coup, m.c vaut 0x54 */

m.c = 0; /* m.c vaut 0, du même coup m.s vaut 0x8000 */

Rappelons que C a un typage faible. Ainsi, l’exemple suivant passe parfaitement sur la plupart des compilateurs.

m.c = ’a’+3+vert; /* en introduction sur C, nous parlons de typage faible : on affecte à un caractère la somme d’un caractère, d’un entier et d’une couleur, soit le code ASCII de ’e’ */

M

Langage Ada

Le tableau 6.2 présente les types de base du langage Ada.

À l’instar du langage C, la norme Ada n’impose pas de taille pour les types numé-

riques. Généralement, c’est la taille d’un registre de calcul.

La norme prévoit, mais n’impose pas, la présence de types numériques courts, longs, ou très longs : ainsi, Long_Integer correspond à un entier long, Short_Natural correspond à un entier non signé court, Long_Long_Float correspond à un flottant très long, etc.

© Dunod – La photocopie non autorisée est un délit.

249



Télécharger



Déni de responsabilité:
Ce site ne stocke aucun fichier sur son serveur. Nous ne faisons qu'indexer et lier au contenu fourni par d'autres sites. Veuillez contacter les fournisseurs de contenu pour supprimer le contenu des droits d'auteur, le cas échéant, et nous envoyer un courrier électronique. Nous supprimerons immédiatement les liens ou contenus pertinents.