Descrierea structurii programului ansi c limbaj de programare

„Directiva“ oferă instrucțiuni pentru preprocesor Odată cu punerea în aplicare a unor acțiuni cu privire la textul programului pentru a compila.

„Pragma“ dă sarcina de a compilator pentru a efectua o acțiune specifică în timpul compilării.







Codul sursă poate fi divizată într-una sau mai multe „fișierele sursă“. (De exemplu, fișierul sursă poate conține numai câteva funcții relevante ale programului.) Necesitatea de a compila separat Când compilați un program pentru text general, și apoi asamblează fișierele sursă ale acesteia. În plus, puteți utiliza directiva #include pentru a combina mai multe fișiere sursă într-un fișier sursă de mare pentru a compila. (Informații cu privire la „includerea“ a fișierelor conținute în „Directiva Preprocessor și pragma“.)

Directivele fișier sursă se aplică numai la acest fișier, și incluse în fișierele sale. În plus, directiva se aplică numai porțiunea din fișierul care este urmat.

Pragma acționează de obicei pe respectiva parte din fișierul original. Punerea în aplicare definește acțiunile specificate în compilatorul Pragma. (Ghid pentru compilator descrie în detaliu efectul pragma specific).

Exemplul următor prezintă programul sursă C, format din două fișiere de intrare. După compilarea fișierelor sursă pot fi puse împreună și utilizate ca un singur program.

Se presupune că funcția principală și max sunt în diferite fișiere și execuția programului pornește de la principal.

Liniile care încep cu semnul diez (#) sunt directivele preprocesor. Aceste directive informează preprocesorul că fișierul în jurul valorii de 1 sursă pe care doriți să înlocuiți ONE identificatorilor, cei doi și trei pe aceste cifre. Cu toate acestea, aceste directive nu se referă în nici un fel la fișierul sursă 2 (a se vedea. De mai jos), care este compilat în mod individual și apoi configurat cu fișierul sursă 1.

Fișier sursă 2 conține definiția funcției max. Această definiție satisface max-apel în fișierul sursă: 1. De notat că definiția maxim corespunde standardului C. Pentru mai multe informații despre această nouă formă și funcția de prototip este conținută în capitolul „Opțiuni“.

Fiecare program C trebuie să aibă o funcție principală, care trebuie să aibă numele principal. Funcția principală este punctul de plecare al programului. Se administrează, de obicei, executarea programului, cauzând momentul potrivit altor funcții. Programul completează în mod normal, executarea sa, la sfârșitul funcției principale, cu toate că executarea acesteia poate fi întreruptă și în alte puncte ale programului, în funcție de condițiile de performanțele sale.

Programul sursă este format de obicei din mai multe funcții, fiecare dintre care îndeplinește una sau mai multe sarcini specifice. Funcția principală poate provoca aceste funcții pentru a-și îndeplini sarcinile respective. Când principală solicită o altă funcție, transmite această funcție și executarea începe cu prima funcție declarație. Funcția returnează după executarea unei declarații de returnare, sau după încheierea funcției.

Puteți declara orice funcție, inclusiv principalele, cu parametrii. Atunci când o funcție solicită alta, numită funcția preia valorile parametrilor săi de la apelanți săi. Aceste valori sunt numite „argumente“. Puteți declara parametrii formali în principal, astfel încât acestea să poată lua valorile programului de mediu. (Cel mai adesea aceste argumente sunt transmise din linia de comandă atunci când execută programul.)







În mod tradițional, primii trei parametri ai funcției principale declarate cu numele argc, argv și envp. Parametrul argc este declarată pentru a stoca numărul total de transmis în principalele argumente. Parametrul Argv este declarat ca o serie de indicii, dintre care fiecare element indică o reprezentare șir de caractere transferate în argumentul principal. Parametrul Envp este un pointer la tabelul de valori string care setează software-ul de execuție.

Sistemul de operare atribuie valori la parametrii argc, argv și envp, un utilizator introduce o argumente valabile pentru principal. Sistemul de operare, nu limbajul C, definește o transformare atunci când trece argumente într-un anumit sistem. Informații suplimentare cu privire la acest subiect este conținută în manualul de compilator.

Pentru a înțelege modul în care funcționează programul în C, trebuie să înțelegem mai întâi regulile care guvernează utilizarea de variabile și funcții în program. Pentru a înțelege aceste reguli este important să se înțeleagă trei concepte de bază: „bloc“, „durata“ și „domeniu de aplicare“.

Rețineți că, deși toate declarațiile compuse între paranteze, nu totul inclus între paranteze este o instrucțiune compusă. De exemplu, deși specificația de tablouri, structuri, și care sunt enumerate elementele pot fi închise în paranteze, acestea nu sunt considerate ca parte a operatorului.

durată

„Durata“ este perioada programului, în care există o variabilă sau o funcție. Toate funcțiile programului există pe tot parcursul programului.

variabilă Durata poate fi internă (locală) sau extern (la nivel mondial). Element la acțiune, ora locală ( „elementul local“) stochează și determină valoarea numai în blocul care a fost definită sau declarată. Controlul local este alocat întotdeauna o nouă locație în memorie de fiecare dată când programul este inclus în unitate, iar valoarea stocată se pierde atunci când programul iese din bloc. Dacă acțiunea de timp variabilă la nivel global (element de la nivel mondial), stochează și determină valoarea pe durata programului.

Următoarele reguli definesc o variabilă globală sau o ora locală de acțiune:

- Variabilele care sunt declarate în exterior (în afara tuturor blocurilor de program) sunt întotdeauna durata globală.

domeniu

Element „Domeniul de aplicare“ definește o parte a programului în care aceasta poate fi referite de nume. Elementul este disponibil numai în domeniul său de acțiune, care poate fi limitată la (în ordinea consolidării restricțiilor) dosar, bloc funcțional sau prototip funcție în care apare.

Deși elementul timpului de acțiune la nivel mondial și „acolo“ pe tot parcursul punerii în aplicare a programului inițial (de exemplu, a declarat exterior variabilă sau o variabilă locală este declarată cu cuvântul cheie static), este posibil să nu fie accesibil din toate părțile programului.

sinopsis

Redarea cu identificatorii în limba folosită pentru a se referi la mai multe tipuri de obiecte diferite. Când scrieți un program în identificatorii C utilizate pentru funcții, variabile, parametrii formali și alte componente utilizate în internetworking obiectele de program. C vă permite să utilizați un singur cod pentru mai multe elemente ale programului, dacă urmați regulile stabilite în prezenta secțiune. (Determinarea ID conținut în capitolul „Pe Elementelor.“)

Compilatorul stabilește „clase“, în scopul de a distinge identificatorii utilizate pentru diferite tipuri de elemente. Pentru a evita un conflict, fiecare nume de clasă trebuie să fie unic, dar în mai multe clase de nume identic poate fi utilizat. Acest lucru înseamnă că puteți utiliza ID-ul de la un număr de diferite obiecte, în cazul în care aceste obiecte sunt plasate în diferite clase. Compilatorul poate identifica link-ul din contextul utilizării unui identificator în program. Lista de mai jos descrie tipurile de elemente pe care le puteți atribui nume program în C și a insuflat Naming:

Trei elementul numit student din acest exemplu nu intră în conflict, deoarece semne de structuri, componente, structuri și nume de variabile sunt în trei clase diferite. Contextul de utilizare a fiecărui element poate interpreta corect fiecare elev în aspectul de program.

De exemplu, atunci când apare un student după cuvântul cheie struct, compilatorul recunoaște că acesta este un semn al structurii. Când apare un student după ce selectați componentele operatorului (-.> Or), acest nume se referă la componenta structurii. Într-un alt elev se referă la o variabilă structurală.