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.

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.

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

Saved successfully!

Ooh no, something went wrong!