Home
cours 7
Contents
1. Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Tableaux de structures On peut aussi faire des tableaux de structures struct entree chat mot TAILLE_MOTS int nombre_ok nombre_spam F struct entree corpus NB_MOTS Quizz e comment acc der au i me caract re du j me mot corpus i est il pass par valeur ou r f rence corpus est il pass par valeur ou r f rence Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Tableaux de structures On peut aussi faire des tableaux de structures struct entree chat mot TAILLE_MOTS int nombre_ok nombre_spam F struct entree corpus NB_MOTS Quizz e acc s au i me caract re du j me mot corpus j mot i e corpus i est pass par valeur et peut tre copi e corpus est pass par r f rence et ne peut pas tre copi Antoine Min Ecole normale sup rieure Initiation au C cours n 7 EE Alias de type avec typedef Les types struct Alias de type avec typedef Les types union Alias de type avec typedef typedef type monalias Effet
2. d j vu des exemples de typedef dans la biblioth que C size_t utilis par exemple comme type de retour de strlen d fini par la biblioth que C comme un type entier sur mon Linux 64 bit typedef unsigned long size_t FILE type des flux ouverts par fopen sur mon Linux 64 bit typedef struct _IO_FILE FILE struct _IO_FILE int _flags char x _IO_read_ptr Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types union Aa LES RS s D finition des unions EII ADS IE Utilisation des unions Les types union Notion d union Union C alternative Exemple nombre entier ou flottant Une union est compos e de champs e nomm s typ s Les champs partagent le m me emplacement en m moire on ne peut utiliser qu un champ la fois l union occupe la place n cessaire au plus gros champ Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct Alias de type avec typedef Les types union D clarations de types unions D finition des unions Utilisation des unions D claration de type similaire une structure mais avec le mot cl union union monunion typel champl typeN champN ES Effet d clare un nouveau type d union Antoine Min cole normale sup rieure Initiation au C cours n 7 union nombre int entier double flottant Occupation en m
3. monalias devient un alias de type typedef unsigned int uint uint i typedef int compte_t compte_t numero Applications permet de rendre un programme plus concis uint plus court que unsigned int e param trique par abstraction du type r ellement utilis on peut facilement changer le type des num ros de compte Antoine Min Ecole normale sup rieure Initiation au C cours n 7 Les types struct Alias de type avec typedef Les types union Application de typedef aux structures On peut se servir de typedef pour viter le mot cl struct struct compte typedef struct compte compte _t compte t e m void affiche_compte const compte_t c Note on peut utiliser un alias dans un alias de type typedef const compte_t compte_constptr void affiche_compte compte_constptr c Antoine Min cole normale sup rieure Initiation au C cours n 7 struct compte typedef struct compte compte On donne le m me nom au type structur et l alias I n y a pas d ambigu t entre struct compte et compte typedef struct compte compte D finit la fois struct compte et compte On peut utiliser les deux types typedef struct compte D finit seulement compte pas struct compte Le type structur est anonyme Les types struct Alias de type avec typedef Les types union typedef dans la biblioth que C On a
4. retour de fonction copient r cursivement les champs est quivalent v nom 0 u nom 0 nom 29 u nom 29 naissance 0 u naissance 0 naissancel1 u naissance 1 naissance 2 u naissance 2 4 lt 4 lt lt Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Structures imbriqu es Des champs structures peuvent appara tre dans une structure struct fiche struct id ident struct compte cb visa F Notes similaires aux tableaux dans les structures e on peut imbriquer les initialiseurs e les sous structures sont copi es r cursivement e on acc de un champ par un chemin d acc s Exemple u cb numero n de compte CB Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Exemples de structures imbriqu es void affiche compte const struct compte c void affiche const struct fiche f printf fiche de s n f gt ident nom affiche_compte amp f gt cb affiche_compte amp f gt visa Les structures permettent d organiser ses donn es de mani re hi rarchique e de r utiliser des fonctions
5. un comportement tr s diff rent des tableaux Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Passage de structures par r f rence Passage par r f rence peut tre simul gr ce aux pointeurs void loyer struct compte c xc solde 999 9 struct compte cb loyer amp cb il n y a pas d allocation ou de copie de structure gt co t faible en m moire et en temps e c et cb r f rencent le m me objet en m moire gt xc solde 999 9 modifie cb solde Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct Alias de type avec typedef Les types union L op rateur gt D finition de structures Manipulation de structures Structures et tableaux imbriqu s Attention la priorit des op rateurs x y signifie x y et pas x y Comme on a souvent besoin de la construction x y le C propose un op rateur sp cial gt tiret sup rieur variable gt champ e strictement quivalent xvariable champ Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Applicati
6. Les types struct Alias de type avec typedef Les types union Initiation au C cours n 7 Antoine Min Ecole normale sup rieure 5 avril 2007 Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types de donn es structur es e struct e union Les alias de type typedef Les types struct Alias de type avec typedef Les types union Rappels sur les types C Types scalaires Types de base e entiers int unsigned char long etc e flottants float double Types pointeurs type Types compos s Types tableaux homog nes type Types structures et unions h t rog nes Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Notion de structure Structure ou enregistrement Permet de grouper plusieurs valeurs dans une seule variable Exemple compte Suisse n banque n compte solde Une structure est compos e d un nombre fix de champs nomm s banque compte solde typ s int pour banque et compte float pour solde Les champs peuvent tre de type diff rent Une variable structur e peut tre manipul e soit champ par champ lecture mise jour comme un tout initialisation c
7. int y machin typedef union int type truc truc machin machin machintruc machintruc b on se sert de b type pour indiquer si on a affaire un truc ou un machin b type b truc type et b machin type sont interchangeables et repr sentent le m me objet m moire Antoine Min cole normale sup rieure Initiation au C cours n 7
8. moire 8 octets D finition des unions Utilisation des unions Variables Les unions se d clarent et s utilisent comme des structures union nombre nb nb flottant 12 nb flottant 2 avec une diff rence importante Ecrire dans un champ rend invalide les autres champs D finition des unions Utilisation des unions Exemple d i On ne doit pas crire dans un champ puis lire depuis un autre Exemple faux union nombre nb nb flottant 12 OK nb entier 42 OK x nb flottant erreur gt il faut se souvenir du champ actif Les types struct Alias de type avec typedef Les types union Utilisation pratique des unions D finition des unions Utilisation des unions En pratique on se sert d un discriminant pour se souvenir du champ actif typedef union int ent double flot val_nb typedef struct int type val_nb val nombre nombre nb Mode d emploi le champ entier type sert de discriminant sinb type 0 alors on utilise nb val ent sinb type 1 alors on utilise nb val flot Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct Alias de type avec typedef Les types union Unions de structures D finition des unions Utilisation des unions Autre utilisation courante champs structures typedef struct int type int x truc typedef struct int type
9. nfondre nom de type de variable de champ Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Acc s aux champs Op rateur point variable champ Effet r f rence le champ champ de la variable variable e utilisable dans une expression Exemple float fric cb solde pel solde modifiable value Exemple cb solde 200 25 Antoine Min Ecole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Initialisation de structures Initialisation la d claration comme pour un tableau struct mastruct variable exprl exprN e l ordre des expressions est le m me que celui des champs les champs manquants sont initialis s O ou NULL e on peut imbriquer les initialiseurs entre et structures et ou tableaux imbriqu s struct compte cb 99 1345 0 1 Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Copies de structures Copie l op rateur peut tre utilis sur des
10. on affichage d une structure Affichage il faut afficher les champs un par un la main gt on d finit souvent une fonction auxiliaire Fonction d affichage void affiche compte const struct compte x c it printf Compte n craie n printf Banque i n c gt banque printf Num ro i n c gt numero printf SOLDE f n c gt solde e on opte pour un passage par r f rence pour viter la copie e xc n est pas modifi on l indique par const Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Tableaux dans les structures Des champs tableaux peuvent appara tre dans une structure struct id char nom 30 int naissance 3 LE Notes une variable de type struct id occupe 42 octets e on peut imbriquer les initialiseurs Ex struct id u Antoine 11 10 1977 e on peut acc der un l ment par un chemin d acc s Exemple u naissance 2 ann e de naissance Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Tableaux dans les structures L affectation l initialisation le passage en argument ou en
11. opie passage une fonction Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s D clarations de types structur s D claration de type obligatoire on utilise le mot cl struct struct mastruct typel champl typeN champN HE Effet d clare un nouveau type de structure e de nom mastruct e de champs nomm s champl champN e les champs ont pour type typel typeNl mastruct champ1 champ doivent tre des identificateurs Antoine Min cole normale sup rieure Initiation au C cours n 7 D finition de structures Manipulation de structures Structures et tableaux imbriqu s D clarations struct compte int banque int compte float solde Ta Sur un Intel 32 ou 64 bits un objet de type compte occupera sizeof 12 octets Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s D claration de variables structur es Le type associ une structure est de la forme struct mastruct struct mastruct variable Effet d clare une variable variable de type structure mastruct pr alablement d fini struct compte cb pel D clare deux variable structur es de type compte Ne pas co
12. variables structur es Effet copie champ champ new_cb cb est quivalent new_cb banque cb banque new_cb compte cb compte new_cb solde cb solde Initialisation par recopie struct compte visa cb Ce n tait pas possible avec les tableaux Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Passage de structures par valeur Appels de fonctions les variables structur es sont pass es par valeur void anniversaire struct compte c c solde 10 struct compte cb anniversaire cb e une nouvelle variable c est cr e e les champs de cb sont copi s dans ceux de c une modification de c ne change pas cb Comportement tr s diff rent de celui des tableaux Antoine Min cole normale sup rieure Initiation au C cours n 7 Les types struct D finition de structures Alias de type avec typedef Manipulation de structures Les types union Structures et tableaux imbriqu s Retour de structures Retour une fonction peut retourner une structure struct compte nouveau_compte int banque struct compte c banque lrand48 0 return c J Applications initialisation struct compte c nouveau_compte 12 copie cb nouveau_compte 42 L encore
Download Pdf Manuals
Related Search
Related Contents
Radica Games N7315 User's Manual SERVICE MANUAL - Encompass Parts Air King 4TM64A/9515A User's Manual machine a fumee rosco delta 3000™ manuel d`utilisation 4輪ドリーカメラスタンドセット INSTALLATION MANUAL - w w w . m a x c l i m a . b g Basswitch Clean Boost Manual - Ruppert Musical Instruments Copyright © All rights reserved.
Failed to retrieve file