Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Declaratia typedef din C permite atribuirea unui nume oricãrui tip, nume care se<br />
poate folosi apoi la fel cu numele tipurilor predefinite ale <strong>limbajul</strong>ui. Sintaxa<br />
declaratiei typedef este la fel cu sintaxa unei declaratii de variabilã, dar se declarã un<br />
nume de tip si nu un nume de variabilã.<br />
In <strong>limbajul</strong> C declaratia typedef se utilizeazã frecvent pentru atribuirea de nume<br />
unor tipuri structurã. Exemple:<br />
// definire nume tip simultan cu definire tip structurã<br />
typedef struct { float re,im;} complex;<br />
// definire nume tip dupã definire tip structura<br />
typedef struct activ act;<br />
Deoarece un tip structurã este folosit <strong>în</strong> mai multe functii (inclusiv “main”),<br />
definirea tipului structurã (cu sau fãrã typedef) se face la <strong>în</strong>ceputul fisierului sursã care<br />
contine functiile (<strong>în</strong>aintea primei functii). Dacã un program este format din mai multe<br />
fisiere sursã atunci definitia structurii face parte dintr-un fisier antet (de tip .H), inclus<br />
<strong>în</strong> fisierele sursã care se referã la acea structurã.<br />
Utilizarea unor nume de structuri permite utilizatorilor extinderea <strong>limbajul</strong>ui cu noi<br />
tipuri de date, mai adecvate problemei rezolvate. Exemplu:<br />
// definitii de tipuri<br />
typedef struct { float x,y;} punct;<br />
typedef struct { int nv; punct v[50];} poligon;<br />
// lungime segment delimitat de doua puncte<br />
float lung (punct a, punct b) {<br />
float dx= b.x-a.x;<br />
float dy= b.y-a.y;<br />
return sqrt ( dx*dx+dy*dy);<br />
}<br />
// calcul primetru poligon<br />
float perim ( poligon p) {<br />
int i,n; float rez=0;<br />
n=p.nv;<br />
for (i=0;i