90
• wiersz nr 3 zostanie skompilowany w (>ozostałycłi wypadkach
• wiersz nr 1 będzie kompilowany zawsze
#ifdef #ifndef #else #endif
Te instrukcje warunkują kompilację od tego, czy odpowiednia stała została zdefiniowana.
#ifdrf s|)<nv(nliije. że kompilator skompiluje |x>niższy kod tylko gdy została zdefiniowana odpowiednia stała.
#ifndef ma odwrotne działanie do #ł/dc/, a mianowicie brak definicji odpowiedniej stałej umożliwia kompilacje poniższego kodu.
#else,#endif mają identyczne zastosowanie jak te z powyższej grupy Przykład:
tfdefine INFO /"definicja stałej INFO*/ tfifdef INFO
printf ("Twórcą tego programu jest Jan Kovalski\n");/*l*/ tfendif
tfifndef INFO
printf ("Twórcą tego programu jest znany programista\n");/*2*/ tfendif
To czy dowiemy się kto jest twórcą tego programu zależy czy instrukcja definiująca stałą INFO lłędzie istnieć. W powyższym przypadku na ekranie powinno się wyświetlić
Twórcą tego programu jest Jan Kowalski
Powoduje przerwanie kompilacji i wyświetlenie tekstu, który znajduje się za tą instrukcją. Przydatne gdy chcemy zabezpieczyć się przed zdefiniowaniem nieodpowiednich stałycłi.
Przykład: tfif BLAD — 1
tferror "Poważny błąd kompilacji" tfendif
Co jeżeli zdefiniujemy stałą BLAD z wartością 1? Spowoduje to wyświet lenie w trakcie kompilacji komunikatu podobnego do poniższego:
Fatal error program.c 6: Error directive: "Poważny błąd kompilacji"
in function mainO
*** 1 errors in Compile •** wraz z przerwaniem kompilacji.