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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

se definesc constantele simbolice si se declarã functiile folosite <strong>în</strong> mai multe fisiere din<br />

componenta aplicatiei.<br />

Exemplu de fragment dintr-un fisier antet folosit <strong>în</strong> programul “dirlist”:<br />

struct file {<br />

char fname[13]; // nume fisier (8+3+’.’+0)<br />

long fsize; // dimensiune fisier<br />

char ftime[26] ; // data ultimei modificari<br />

short isdir; // daca fisier director<br />

};<br />

#define MAXC 256 // dimensiunea unor siruri<br />

#define MAXF 1000 // numar de fisiere estimat<br />

Fisierul antet “dirlist.h” poate include fisiere antet standard comune (“stdio.h”,<br />

”stdlib.h” ), dar este posibil ca includerile de fisiere antet standard sã facã parte din<br />

fiecare fisier sursã al aplicatiei.<br />

In general, comunicarea dintre functii se va realiza prin argumente si prin rezultatul<br />

asociat numelui functiei si nu prin variabile externe (globale). Existã totusi situatii <strong>în</strong><br />

care definirea unor variabile externe, folosite de un numãr mare de functii, reduce<br />

numãrul de argumente, simplificã utilizarea functiilor si produce un cod mai eficient.<br />

In programul “dirlist” astfel de variabile comune mai multor functii pot fi: calea<br />

cãtre directorul indicat, masca de selectie fisiere si lista de optiuni de afisare. Functia<br />

“getargs” din fisierul “input.c” preia aceste date din linia de comandã, dar ele sunt<br />

folosite de functii din celelalte douã fisiere “getfiles.c” si “output.c”. Variabilele<br />

externe se definesc <strong>în</strong>tr-unul din fisierele sursã ale aplicatiei, de exemplu <strong>în</strong> “dirlist.c”<br />

care contine functia “main”:<br />

char path[MAXC], mask[MAXC], opt[MAXC]; // var comune<br />

Domeniul implicit al unei variabile externe este fisierul <strong>în</strong> care variabila este definitã<br />

(mai precis, functiile care urmeazã definitiei). Pentru ca functii din fisiere sursã diferite<br />

sã se poatã referi la o aceeasi variabilã, definitã <strong>în</strong>tr-un singur fisier este necesarã<br />

declararea variabilei respective cu atributul extern, <strong>în</strong> toate fisierele unde se fac referiri<br />

la ea. Exemplu :<br />

extern char path[MAXC], mask[MAXC], opt[MAXC];<br />

Directive preprocesor utile <strong>în</strong> programele mari<br />

Directivele preprocesor C au o sintaxã si o prelucrare distinctã de instructiunile si<br />

declaratiile <strong>limbajul</strong>ui, dar sunt parte a standardului <strong>limbajul</strong>ui C. Directivele sunt<br />

interpretate <strong>în</strong>tr-o etapã preliminarã compilãrii (traducerii) textului C, de un<br />

preprocesor.<br />

O directivã <strong>în</strong>cepe prin caracterul ‘#’ si se terminã la sfârsitul liniei curente (daca nu<br />

existã linii de continuare a liniei curente). Nu se foloseste caracterul ‘;’ pentru<br />

terminarea unei directive.

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

Saved successfully!

Ooh no, something went wrong!