Extras din curs
1. Generalitati asupra limbajului C
1.1. Introducere
Limbajul C a fost creat la începutul anilor '70 de catre Brian W Kernigham si Dennis M Ritchie de la Bell Laboratories New Jersey, fiind initial destinat scrierii unei parti din sistemul de operare Unix. Lucrarea The C Programming Language a celor doi autori, aparuta în mai multe versiuni, a ramas cartea de referinta în domeniu, impunînd un standard minimal pentru orice implementare.
Caracteristicile distinctive ale limbajului au fost clar definite de la început, ele pastrîndu-se în toate dezvoltarile ulterioare:
portabilitate maxima;
structurare;
posibilitatea efectuarii operatiilor la nivelul masinii cu pastrarea caracteristicilor unui limbaj evoluat.
Limbajul C este un limbaj de programare universal, caracterizat printr-o exprimare concisa, un control modern al fluxului executiei, structuri de date, si un bogat set de operatori.
Limbajul C nu este un limbaj de nivel foarte înalt si nu este specializat pentru un anumit domeniu de aplicatii. Absenta restrictiilor si generalitatea sa îl fac un limbaj mai convenabil si mai eficient decît multe alte limbaje mai puternice.
Limbajul C permite scrierea de programe bine structurate, datorita constructiilor sale de control al fluxului: grupari de instructiuni, luari de decizii (if), cicluri cu testul de terminare înaintea ciclului (while, for) sau dupa ciclu (do) si selectia unui caz dintr-o multime de cazuri (switch).
Limbajul C permite lucrul cu pointeri si are o aritmetica de adrese puternica. Permite de asemenea definirea de catre programator a unor tipuri structurate de date, care pot fi oricît de complexe.
Limbajul C nu are operatii care prelucreaza direct obiectele compuse cum sînt sirurile de caractere, multimile, listele sau masivele, considerate fiecare ca o entitate. Limbajul C nu prezinta facilitati de alocare a memoriei altele decît definitia statica sau disciplina de stiva relativa la variabilele locale ale functiilor. În sfîrsit, limbajul C nu are facilitati de intrare / iesire si nici metode directe de acces la fisiere. Toate aceste mecanisme de nivel înalt sînt realizate prin functii explicite.
Desi limbajul C este, asadar, un limbaj de nivel relativ scazut, el este un limbaj agreabil, expresiv si elastic, care se preteaza la o gama larga de programe. C este un limbaj restrîns si se învata relativ usor, iar subtilitatile se retin pe masura ce creste experienta în programare.
1.2. Reprezentarea valorilor numerice
O valoare întreaga se reprezinta în baza doi:
105(10) = 01101001(2)
32750(10) = 0111111111101110(2)
O valoare întreaga negativa se reprezinta în complement fata de doi astfel: daca pentru reprezentare se folosesc w biti, a (0<a<2w1) se reprezinta ca si valoarea 2wa, din care se pastreaza cele mai putin semnificative w pozitii. Astfel operatiile de adunare (cele mai frecvente operatii elementare) se efectueaza într-un timp foarte scurt, fara a fi nevoie de alte operatii auxiliare.
105(10) = 10010111(2)
32750(10) = 1000000000010010(2)
Codificarea ASCII a caracterelor foloseste 8 biti (un octet):
codul caracterului spatiu este 32;
codurile cifrelor sînt valori între 48 si 57;
codurile literelor mari sînt valori între 65 si 90;
codurile literelor mici sînt valori între 97 si 122.
Exista doua conventii de memorare a valorilor întregi care necesita mai multi octeti:
Big Endian, octetii apar în ordinea cifrelor semnificative: valoarea 127AC450(16) se memoreaza astfel: 12, 7A, C4, 50;
Little Endian, octetii apar în ordine inversa: valoarea 127AC450(16) se memoreaza astfel: 50, C4, 7A, 12.
Calculatoarele bazate pe procesoare Intel folosesc a doua conventie de reprezentare. Detalii despre acest subiect se afla la:
Preview document
Conținut arhivă zip
- Manual Limbaj C.doc