Director c

Referința C / C ++

#if, #ifdef, #ifndef, #else, #elif și #endif

Directiva #if, # ifdef, #ifndef, #else, #elif și # endif utilizate pentru compilarea selectivă a diferitelor fragmente de program. Ideea principală este că, dacă expresia după directivele #if, # ifdef și #ifndef, este adevărat, acesta va fi compilat codul între unul dintre aceste trei directive, și # endif directivă; în caz contrar, acest cod va fi omis. Directiva #endif este folosită pentru a indica sfârșitul #if. Directiva #else poate fi utilizată cu oricare dintre directivele de mai sus pentru a oferi o opțiune alternativă de compilare.







Forma generală de scriere a directivei #if arată astfel.

Dacă expresia constantă este adevărată, codul direct din spatele acestei directive va fi compilat.

Forma generală a directivei #ifdef este după cum urmează.

Dacă macro_name este definită în instrucțiunea #define, se va compila blocul de cod următor instrucțiunii #ifdef.







Forma generală a directivei #ifndef este după cum urmează.

Dacă macro-nume nu este specificat în declarația #define, blocul de cod va fi compilat după operatorul #ifndef.

Iată un exemplu al lucrării comune a unor directive preprocesoare.

Ca urmare a acestui fragment de program va fi afișat pe ecran fraza „Bună ziua“, „Ted“ și „Bună ziua, John,“ și sintagma „Bună ziua, George“ - nr.

Direcția #elif este utilizată pentru a crea instrucțiunea if-else-if. Forma sa generală are această formă.

Pentru a face față mai multor alternative simultan, puteți utiliza o serie de directive #eif.

Cu directivele #if și #elif și predprotsessornoy de prelucrare a operatorului definit poate determina, de asemenea, dacă un anumit nume de macro este definită de directivă preprocesor definesc. Următoarea formă generală a înregistrării este utilizată pentru aceasta.

Dacă macro_name este specificat, se va compila operația_sequence. În caz contrar, va fi omisă. De exemplu, în fragmentul următor, instrucțiunea condiționată este compilată, deoarece numele macro de DEBUG este definit în program.

De asemenea, puteți predefini operatorul definit de operatorul de negare (!) Și apoi se va realiza compilația condiționată dacă nu este definit numele macro-ului specificat.







Articole similare

Trimiteți-le prietenilor: