38969

38969



91


DYREKTYWA PREPROCESORA

#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:

#varning "To jest bardzo prosty program"

Spowoduje to takie oto zachowanie kompilatora:

test.c:3:2: uarning: \#varning “To jest bardzo prosty program’’

Użycie dyrektywy #warning nie przerywa procesu kompilacji i służy tylko do wyświetlania komunikatów dla programisty w czasie kompilacji programu.

#line

Powoduje wyzcrowame licznika linii kompilatora, który jest używany przy wyświetlaniu 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); /1 tutaj jest błąd - brak cudzysłowu zamykającego 1/

Jeżeli teraz nastąpi pról>a 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 wykonywanych czynności. Makra deklaruje się za pomocą dyrektywy #define:

#define MAKR0(argl, 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 !>ardzo podatne na trudne do zlokalizowania błędy (kompilator bętlzie podawał błędy w miejscach, w których nic nie widzimy lx> preprocesor wstawił tam tekst). Makra są szybsze (nie następuje wywołanie funkcji, które zawsze zajmuje trochę czasu1), ale też mniej bezpieczne i elastyczne niż funkcje.

Przeanalizujmy teraz fragment kodu:

1

Tnk naprawdę wg .standardu C99 tanieje możliwość napisania funkcji, której kod także liędzic wstawiany w miejscu wywołania. Odbywa się to dzięki inlinc.



Wyszukiwarka

Podobne podstrony:
M2 172 Andrzej Zero - Mathcad 7.06.3.3. Wyrównywanie tekstu Tekst zawarty w regionach tekstowych mo
M2 172 Andrzej Zero - Mathcad 7.06.3.3. Wyrównywanie tekstu Tekst zawarty w regionach tekstowych mo
Atrybuty Przykład: Program czyta plik źródłowy języka c, wyświetla jego zawartość z
M2 172 Andrzej Zero - Mathcad 7.06.3.3. Wyrównywanie tekstu Tekst zawarty w regionach tekstowych mo
skibd Nr pytania Pytanie Odpowiedz 1 Znaczik <TT></TT>: wyświetla tekst o stałej
Źródło:    opracowanie własne. Tekst zawarty w pliku pdf jest ze strony: http://www.l
Przykładowy zestaw zadań z informatyki Poziom rozszerzony - część II b) kodujący tekst zawarty w pli
89 DYREKTYWA PREPROCESORA lub #define NAZWA.STALEJ Przykład #define LICZBA 8 spowoduje ,że każde
ANSI C 8 DODATEK B BIBLIOTEKA STANDARDOWA ________ char *getenv(const char *name) Funkcja getenv z
skanuj0051 Dana jest płaszczyzna a-ACK. Wyznacz rzuty kwadratu ABCD zawartego w płaszczyźnie a. któr

więcej podobnych podstron