Programare practică în C, ediția a 3-a de Steve Oualline

Cum funcționează C

C este conceput ca o punte de legătură între programator și calculatorul brut. Ideea este de a permite programatorului să organizeze un program într-un mod pe care îl poate înțelege cu ușurință. Compilatorul traduce apoi limbajul în ceva pe care mașina îl poate folosi.

Programele de calculator sunt formate din două părți principale: date și instrucțiuni. Calculatorul impune o organizare mică sau deloc asupra acestor două părți. La urma urmei, calculatoarele sunt proiectate pentru a fi cât mai generale posibil. Programatorul ar trebui să impună organizarea sa asupra calculatorului, nu invers.

Datele dintr-un calculator sunt stocate ca o serie de octeți. C organizează acești octeți în date utile. Declarațiile de date sunt folosite de programator pentru a descrie informațiile cu care lucrează. De exemplu:

int total; /* Total number accounts */

spune lui C că dorim să folosim o secțiune din memoria calculatorului pentru a stoca un număr întreg numit total. Lăsăm compilatorul să decidă ce anumiți octeți de memorie să folosească; această decizie este un detaliu contabil minor de care nu vrem să ne facem griji.

Variabila noastră total este o variabilă simplă. Ea poate conține un singur număr întreg și descrie un singur total. O serie de numere întregi poate fi organizată într-o matrice după cum urmează:

int balance; /* Balance (in cents) for all 100 accounts */

Din nou, C se va ocupa de detaliile impunerii acestei organizări în memoria calculatorului. În cele din urmă, există tipuri de date mai complexe. De exemplu, un dreptunghi poate avea o lățime, o înălțime, o culoare și un model de umplere. C ne permite să organizăm aceste patru elemente într-un grup numit structură.

struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};

Ceea ce contează este că structurile permit programatorului să organizeze datele în funcție de nevoile sale, indiferent cât de simple sau complexe sunt aceste date. Traducerea acestei descrieri a datelor în ceva ce poate fi folosit de calculator este treaba compilatorului, nu a programatorului.

Dar datele sunt doar o parte a unui program. Avem nevoie, de asemenea, de instrucțiuni. În ceea ce privește calculatorul, acesta nu știe nimic despre dispunerea instrucțiunilor. Știe ce face pentru instrucțiunea curentă și de unde să o ia pe următoarea, dar nimic mai mult.

C este un limbaj de nivel înalt. Acesta ne permite să scriem o instrucțiune de nivel înalt de genul:

area = (base * height) / 2.0; /* Compute area of triangle */

Compilatorul va traduce această instrucțiune într-o serie de instrucțiuni de mașină criptice de nivel scăzut. Acest tip de instrucțiune se numește instrucțiune de atribuire. Este folosit pentru a calcula și a stoca valoarea unei expresii aritmetice.

De asemenea, putem folosi instrucțiuni de control pentru a controla ordinea de procesare. Enunțuri precum enunțurile if și switch permit calculatorului să ia decizii simple. Instrucțiunile pot fi repetate la nesfârșit prin utilizarea instrucțiunilor de buclă, cum ar fi while și for.

Grupurile de instrucțiuni pot fi înfășurate pentru a forma funcții. Astfel, trebuie să scriem o singură dată o funcție de uz general pentru a desena un dreptunghi, iar apoi o putem reutiliza ori de câte ori dorim să desenăm un nou dreptunghi.

C oferă programului un set bogat de funcții standard care execută funcții comune, cum ar fi căutarea, sortarea, intrarea și ieșirea.

Un set de funcții înrudite poate fi grupat într-un singur fișier sursă. Mai multe fișiere sursă pot fi compilate și legate între ele pentru a forma un program.

Unul dintre obiectivele majore ale limbajului C este de a organiza instrucțiunile în componente reutilizabile. La urma urmei, puteți scrie programe mult mai rapid dacă puteți „împrumuta” cea mai mare parte a codului dumneavoastră din altă parte. Grupurile de funcții reutilizabile pot fi combinate într-o bibliotecă. În acest mod, atunci când aveți nevoie, de exemplu, de o rutină de sortare, puteți lua funcția standard qsort din bibliotecă și să o legați în programul dumneavoastră.

Declarațiile de date, structurile și instrucțiunile de control, precum și alte elemente ale limbajului C, nu sunt în beneficiul calculatorului. Calculatorul nu poate face diferența între un milion de octeți aleatori și un program real. Toate elementele limbajului C sunt concepute pentru a permite programatorului să își exprime și să își organizeze clar ideile într-o manieră adaptată pentru el, nu pentru calculator.

Organizarea este cheia pentru a scrie programe bune. De exemplu, în această carte știți că în această carte cuprinsul se află în față și indexul în spate. Folosim această structură deoarece cărțile sunt organizate în acest mod. Organizarea face ca această carte să fie mai ușor de utilizat.

Limbajul C vă permite să vă organizați programele folosind o sintaxă simplă, dar puternică. Această carte merge dincolo de sintaxa C și vă învață reguli de stil care vă permit să realizați programe foarte ușor de citit și de încredere. Combinând o sintaxă puternică cu un bun stil de programare, puteți crea programe puternice care efectuează operații complexe și minunate, dar care sunt, în același timp, organizate astfel încât să fie ușor de înțeles atunci când vine momentul schimbărilor.

.

Leave a Reply