Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Preprocesare

c



+ Font mai mare | - Font mai mic



Preprocesare

Un program sursa C poate fi prelucrat inainte de a fi compilat. O astfel de prelucrare se numeste preprocesare sau precompilare. Acest lucru se realizeaza printr-un program special numit preprocesor. Acesta este apelat automat inainte de a incepe compilarea.



Preprocesorul limbajului C realizeaza urmatoarele:

includeri de alte fisiere (de obicei fisiere sursa);

definitii si apeluri de macrouri simple;

compilare conditionata.

Includerea unui fisier sursa

Fisierele sursa pot fi incluse cu ajutorul directivei include.

Doua formate se folosesc pentru a include un fisier sursa in locul in care apare directiva (de obicei se pune la inceputul programului):

#include "specificator_de_fisier"

sau

#include <specificator_de_fisier>

unde: specificator_de_fisier trebuie sa fie un nume de fisier valid din punct de vedere al sistemului de operare DOS si de obicei are extensia ".h" sau ".c".

Prima varianta este folosita de obicei cand fisierele de inclus sunt furnizate de utilizator; daca nu este indicata calea atunci fisierele sunt cautate in directorul curent si apoi in directoarele setate pentru directiva include.

A doua varianta este folosita pentru incorporarea unui fisier standard care se cauta in directoarele setate pentru directiva include (de obicei astfel de fisiere standard sunt livrate in biblioteci atasate mediului de programare C).

Odata localizat fisierul dintr-o directiva include se inlocuieste aceasta prin textul fisierului sursa. Deci compilatorul nu va mai intalni directiva include ci textul fisierului inclus de preprocesor.

Includerile de fisiere se fac de obicei la inceput pentru ca textele fisierelor sursa (date si functii) sa poata fi utilizate in tot fisierul sursa de lucru. De aceea, la inceputul fisierelor sursa vom intalni mai multe includeri de fisiere standard: stdio.h, stdlib.h, etc. Textul unui fisier inclus poate la randul sau sa contina directiva include. Fisierul stdio.h (prescurtarea de la standard input output header) contine printre altele si functiile standard de intrare-iesire printf si scanf. Fisierele cu extensia ".h" se mai numesc si fisiere header (fisiere care se pun la inceputul fisierului sursa). Un alt exemplu de fisier header este iostream.h folosit in mediul BORLAND C++ care contine functiile cin (console input) si cout (console output).

2. Constante simbolice

Cu directiva define se pot defini constante simbolice si macrouri. Constantele simbolice se definesc astfel:

#define nume succesiune_de_caractere

Preprocesorul substituie nume cu succesiune_de_caractere peste tot in fisierul sursa care urmeaza pozitiei directivei define. Daca succesiune_de_caractere nu incape pe un rand atunci se poate continua pe randul urmator scriind caracterul "" la sfarsitul primului rand.

Numele nume definit ca mai sus se spune ca este o constanta simbolica. Se recomanda ca nume sa fie scris cu litere majuscule pentru a scoate in evidenta ca este o constanta simbolica.

Constructia succesiune_de_caractere folosita pentru a defini o constanta simbolica poate la randul ei sa contina alte constante simbolice.

O constanta simbolica poate fi redefinita (tot cu define) sau poate fi anihilata cu undef (#undef nume).

Exemple:

#define PROCENT 10 // din acest punct al fisierului sursa se substituie

// PROCENT cu 10

. . .

#define PROCENT 15 // de aici PROCENT se substituie cu 15

. . .

#undef PROCENT // din acest punct constanta simbolica PROCENT

// isi inceteaza existenta

. . .

#define DIM 100 // s-au definit doua constante simbolice DIM

#define DOI_PI (2*3.1415926) // si DOI_PI

. . .

int vector[DIM]; // DIM va fi inlocuit cu 100

. . .

x=DOI_PI;

. . .



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 789
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved