Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
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.