17.04.2013 Views

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!