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.
dir c:\work // toate fisierele din directorul “work”<br />
dir *.c // toate fisierele de tip c din directorul curent<br />
dir a:\pc lab*.txt // fisiere de tip txt din a:\pc<br />
dir /B *.obj // fisiere de tip “obj”, fara atribute<br />
Datele necesare programului sunt preluate din linia de comandã si poate fi necesarã<br />
includerea <strong>în</strong>tre ghilimele a sirului ce descrie calea si tipul fisierelor:<br />
dir “c:\lcc\bin\*.*”<br />
Programul va contine cel putin trei module principale : preluare date initiale<br />
(“input”), obtinere informatii despre fisierele cerute (“getfiles”) si prezentarea acestor<br />
informatii (“output”), plus un program principal.<br />
Aceste module pot fi realizate ca fisiere sursã separate, pentru ca eventual sã se<br />
poatã face trecerea spre o variantã cu interfatã graficã, cu izolarea modificãrilor<br />
necesare acestei treceri si evitarea editãrii unui singur fisier sursã foarte mare (dacã tot<br />
programul se realizeazã ca un singur fisier).<br />
Compilãri separate si fisiere proiect<br />
Pe lângã aspectele ce tin de <strong>limbajul</strong> folosit, dezvoltarea si <strong>în</strong>tretinerea programelor<br />
mari ridicã si probleme practice, de operare, ce depind de instrumentele software<br />
folosite (compilator mod linie de comandã sau mediu integrat IDE) si de sistemul de<br />
operare gazdã.<br />
In urma compilãrii separate a unor fisiere sursã rezultã tot atâtea fisiere obiect (de<br />
tip OBJ), care trebuie sã fie legate împreunã <strong>în</strong>tr-un singur program executabil. In<br />
plus, este posibil ca aplicatia sã foloseascã biblioteci de functii nestandard, create de<br />
alti utilizatori sau create ca parte a aplicatiei.<br />
Bibliotecile de functii sunt de douã categorii distincte:<br />
- Biblioteci cu legare staticã, din care functiile sunt extrase <strong>în</strong> faza editãrii de legãturi<br />
si sunt atasate programului executabil creat de linkeditor. Diferenta dintre o bibliotecã<br />
staticã si un modul obiect este aceea ca un fisier obiect (OBJ) este atasat integral<br />
aplicatiei, dar din bibliotecã se extrag si se adaugã aplicatiei numai functiile (modulele<br />
obiect) apelate de aplicatie.<br />
- Biblioteci cu legare dinamicã (numite DLL <strong>în</strong> sistemul Windows), din care functiile<br />
sunt extrase <strong>în</strong> faza de executie a programului, ca urmare a apelãrii lor. Astfel de<br />
biblioteci, folosite <strong>în</strong> comun de mai multe aplicatii, nu mãresc lungimea programelor de<br />
aplicatie, dar trebuie furnizate împreunã cu aplicatia. Un alt avantaj este acela cã o<br />
bibliotecã dinamicã poate fi actualizatã (pentru efectuarea de corecturi sau din motive<br />
de eficientã) fãrã a repeta construirea aplicatiei care o foloseste (editarea de legãturi).<br />
In MS-DOS nu se pot folosi biblioteci cu legare dinamicã.<br />
In legãturã cu compilarea separatã a unor pãrti din programele mari apar douã<br />
probleme:<br />
- Enumerarea modulelor obiect si bibliotecilor statice componente.