Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




PREPROCESARE IN C

c


PREPROCESARE IN C

Un program sursa C poate fi prelucrat înainte 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 înainte de a începe compilarea.



Preprocesorul limbajului C realizeaza urmatoarele:

includeri de alte fisiere (de obicei fisiere sursa);

definitii si apeluri de macrouri simple;

compilare conditionata.

1.4.1. Includerea unui fisier sursa

Fisierele sursa pot fi incluse cu ajutorul directivei include.

Doua formate se folosesc pentru a include un fisier sursa în locul în care apare directiva (de obicei se pune la începutul 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 când fisierele de inclus sunt furnizate de utilizator; daca nu este indicata calea atunci fisierele sunt cautate în directorul curent si apoi în directoarele setate pentru directiva include.

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

Odata localizat fisierul dintr-o directiva include se înlocuieste aceasta prin textul fisierului sursa. Deci compilatorul nu va mai întâlni directiva include ci textul fisierului inclus de preprocesor.

Includerile de fisiere se fac de obicei la început pentru ca textele fisierelor sursa (date si functii) sa poata fi utilizate în tot fisierul sursa de lucru. De aceea, la începutul fisierelor sursa vom întâlni mai multe includeri de fisiere standard: stdio.h, stdlib.h, etc. Textul unui fisier inclus poate la rândul 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 începutul fisierului sursa). Un alt exemplu de fisier header este iostream.h folosit în mediul BORLAND C care contine functiile cin (console input) si cout (console output).

1.4.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 în fisierul sursa care urmeaza pozitiei directivei define. Daca succesiune_de_caractere nu încape pe un rând atunci se poate continua pe rândul urmator scriind caracterul "\" la sfârsitul primului rând.

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 în evidenta ca este o constanta simbolica.

Constructia succesiune_de_caractere folosita pentru a defini o constanta simbolica poate la rândul 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;

. . .



Document Info


Accesari: 1738
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )