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




Compilare conditionata

Informatica


Compilare conditionata

----- ----- --------- ----- ------

Preprocesorul are directive pentru compilare conditionata. Acestea pot fi folosite pentru dezvoltarea programelor si pentru scrierea

codului mai portabil de la o masina la alt 313i81d a. Fiecare directiva de forma

#if expresie_integrala_constanta



#ifdef identificator

#ifndef identificator

implica compilarea conditionata a codului care urmeaza pana la directiva de precompilare

#endif

Pentru compilarea codului de mai sus, in cazul lui #if trebuie ca expresia constanta sa fie diferita de zero (true), in cazul lui

#ifdef sau #ifdefined numele identificatorului trebuie sa fie definit anterior intr-o linie #define, fara interventia directivei

#undef identificator

In cazul lui #ifndef, numele identificatorului trebuie sa nu fie curent definit.

Expresia constanta integrala folosita intr-o directiva de precompilare nu poate contine operatorul "sizeof" sau un cast. Poate

insa, folosi operatorul de precompilare "defined" (valabil in ANSI C, dar nu si C traditional). Expresia

defined identificator

este echivalenta cu

defined(identificator)

Acesta se evalueaza la 1 daca identificatorul este definit, si 0 in caz contrar.

------------

Exemplu:

------------

#if defined(HP9000) || defined(SUN4) && !defined(VAX)

. . . . . /* cod dependent de masina */

#endif

Uneori "printf()" este utila in scopuri de depanare. Presupunem ca la inceputul unui fisier am scris

#define DEBUG 1

si in unele zone ale programului am scris

#if DEBUG

printf("debug: a = %d\n", a);

#endif

Daca dupa ce ne-am convins ca este bine ce se intampla si vrem sa nu mai vizualizam valoarea lui "a" in acest moment, atunci schimbam DEBUG in 0 (de exemplu).

O alta varianta ar fi sa nu initializam DEBUG. Scriem deci la inceputul fisierului

#define DEBUG

Putem folosi #ifdef si #if si scriem:

#ifdef DEBUG

. . . . .

#endif


Document Info


Accesari: 1943
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 )