Kurs programowania w C cz. 75

Nasza ocena:

5
Wyświetleń: 651
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 75 - strona 1

Fragment notatki:

DYREKTYWY PREPROCESORA 91 #warning Wyświetla tekst, zawarty w cudzysłowach, jako ostrzeżenie. Jest często używany do sygnalizacji programiście, że dana część programu jest przestarzała lub może sprawiać problemy. Przykład: #warning "To jest bardzo prosty program" Spowoduje to takie oto zachowanie kompilatora: test.c:3:2: warning: \#warning ‘‘To jest bardzo prosty program’’ Użycie dyrektywy #warning nie przerywa procesu kompilacji i służy tylko do wyświe- tlania komunikatów dla programisty w czasie kompilacji programu. #line Powoduje wyzerowanie licznika linii kompilatora, który jest używany przy wyświe- tlaniu opisu błędów kompilacji. Pozwala to na szybkie znalezienie możliwej przyczyny błędu w rozbudowanym programie. Przykład: printf ("Podaj wartość funkcji"); #line printf ("W przedziale od 10 do 0\n); /* tutaj jest błąd - brak cudzysłowu zamykającego */ Jeżeli teraz nastąpi próba skompilowania tego kodu to kompilator poinformuje, że wystąpił błąd składni w lini  1 , a nie np.  258 . Makra Preprocesor języka C umożliwia też tworzenie makr, czyli automatycznie wykony- wanych czynności. Makra deklaruje się za pomocą dyrektywy #define: #define MAKRO(arg1, arg2, ...) (wyrażenie) W momencie wystąpienia MAKRA w tekście, preprocesor automatycznie zamieni makro na wyrażenie. Makra mogą być pewnego rodzaju alternatywami dla funkcji, ale powinno się ich używać tylko w specjalnych przypadkach. Ponieważ makro sprowadza się do prostego zastąpienia przez preprocesor wywołania makra przez jego tekst, jest bardzo podatne na trudne do zlokalizowania błędy (kompilator będzie podawał błędy w miejscach, w których nic nie widzimy — bo preprocesor wstawił tam tekst). Makra są szybsze (nie następuje wywołanie funkcji, które zawsze zajmuje trochę czas u1),  ale też mniej bezpieczne i elastyczne niż funkcje. Przeanalizujmy teraz fragment kodu: 1Tak naprawdę wg standardu C99 istnieje możliwość napisania funkcji, której kod także będzie wstawiany w miejscu wywołania. Odbywa się to dzięki  inline. ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz