ANSI C 4

ANSI C 4



DODATEK A PRZEWODNIK JĘZYKA C_____

wiersz-elif:

#    elit wyraienie-stałe

część-else:

wiersz-else tekst

wiersz-else:

#    else

Każdy z takich wierszy preprocesora (wiersz-if\ wiersz-elif\ wiersz-else i wiersz zawierający #endif) pojawia się w oddzielnym wierszu programu. Wyrażenia stale, występujące w #if i w następujących #elif, są obliczane kolejno, aż do napotkania wyrażenia z niezerową wartością. Tekst następujący po takich wierszach z zerową wartością opuszcza się. Tekst następujący po takim wierszu z „pozytywną” wartością wyrażenia jest włączany do programu. Przez „tekst” rozumie się tutaj dowolny materiał, łącznie z tymi wierszami preprocesora, które nie są częścią danej konstrukcji warunkowej; tekst ten może być pusty. Jeśli już znaleziono „pozytywny” wiersz #if lub #elif i obsłużono jego tekst, to kolejne wiersze #elif i #else wraz z ich tekstami są pomijane. Jeśli wszystkie wyrażenia są równe zero i występuje wiersz #else, to obsługuje się tekst następujący po #else. Tekst kontrolowany przez nieaktywne (negatywne) ramiona konstrukcji warunkowej ignoruje się, ale przegląda w poszukiwaniu zagnieżdżonych konstrukcji warunkowych.

Wyrażenia stałe występujące w #if i #elif są przedmiotem zwykłych makrorozwinięć. Ponadto, każde wyrażenie mające postać

defined identyfikator

lub

defined ( identyfikator )

przed rozwijaniem makr zastępuje się przez 1L-jeśli identyfikator jest zdefiniowany w preprocesorze, lub przez OL - jeśli nie jest. Wszystkie identyfikatory pozostałe w takim wyrażeniu po makrorozwinięciach zastępuje się przez OL. Na koniec, wszystkie stałe całkowite traktuje się tak, jakby miały przyrostek L, zatem całą arytmetykę przeprowadza się na liczbach długich lub długich bez znaku.

Wynikowe wyrażenie stałe (p. A7.19) ma ograniczenia: musi być całkowite i nie może zawierać operatora sizeof, rzutowania i stałych wyliczeń.

Wiersze sterujące o postaci

#ifdef identyfikator #ifndef identyfikator

A12 PREPROCESOR


powered by

Mi sio!


odpowiadają wierszom

#    if defined identyfikator

#    if! defined identyfikator

Wiersz sterujący #elif nie występował w pierwszym wydaniu, chociaż był dostępny w kilku preprocesorach. Operator preprocesora defined jest także nowy.

A12.6 Numeracja wierszy

Dla potrzeb innych preprocesorów, które generują programy w języku C, wiersz mają-cy jedną z postaci

#    linę stała "nazwa-pliku"

#    linę stała

zleca kompilatorowi, aby dla celów diagnostycznych przyjął, że następny źródłowy wiersz będzie miał numer podany stałą, a nazwą bieżącego pliku źródłowego będzie nazwa-pliku. Jeśli pominięto nazwę pliku (wraz ze znakami cudzysłowu), to pamiętana poprzednia nazwa pliku pozostanie nie zmieniona. Makra występujące w takich wierszach są rozwijane przed interpretacją instrukcji.

A12.7 Generowanie błędów

Wiersz sterujący o postaci

#    error ciąg-leksemówopc

zleca preprocesorowi wypisanie komunikatu diagnostycznego zawierającego podany ciąg leksemów.

A12.8 Instrukcja pragma

Wiersz sterujący o postaci

#    pragma ciqg-leksemówopc

zleca preprocesorowi podjęcie akcji zależnej od implementacji. Nieznana akcja jest ignorowana.

311


Wyszukiwarka

Podobne podstrony:
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C_______ wynikiem jest 1; jeśli odnosi się do tablicy, to wyn
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C ____—-- stropy jest funkcją zwracającą wartość całkowitą i
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C wiersz-sterujący: #    define identyfikator
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C------- czaj umieszczane w oddzielnych wierszach; w kilku pr
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C____A12.9 Pusta instrukcja preprocesora Wiersz zawierający j
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C_________A2.1 Jednostki leksykalne Istnieje sześć klas jedno
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____.____A2.5.2 Stałe znakowe Stała znakowa jest ciągiem zł
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C_________ Wszystkie z typów zmiennopozycyjnych: pojedynczej
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C_______—- Gdy wartość całkowita jest przekształcana do typu
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C_________ Obiekt typu całkowitego można jawnie przekształcić
ANSI C 1 DODATEK A PRZEWODNIK JĘZYKA C Implementacje różnią się reakcjami na dzielenie przez zero
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA CA7.8 Operatory przesunięcia Operatory przesunięcia « i » są
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____ Wynikiem tej operacji jest bitowa różnica symetryczna
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C__________ rekurencyjnie, podskładowych nie może być kwalifi
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C________■ Kwalifikatory typu wskazują specjalne właściwości
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C ___——- łujących się do samych siebie: struktura lub unia mo
ANSI C 1 DODATEK A PRZEWODNIK JĘZYKA C union { struct { int type; ł n; struct { int type

więcej podobnych podstron