ANSI C 6

ANSI C 6



DODATEK A PRZEWODNIK JĘZYKA ______

o nieokreślonej liczbie elementów całkowitych”, „funkcja o nieokreślonych parametrach zwracająca wskaźnik do obiektów całkowitych” oraz „tablica o nieokreślonej liczbie elementów, którymi są wskaźniki do bezparametrowych funkcji o wartościach całkowitych”.

A8.9 Nazwy typedef

Deklaracje, w których specyfikatorem klasy pamięci jest typedef, nie deklarują obiektów, natomiast definiują identyfikatory jako nazwy typów. O takich identyfikatorach mówimi, że są nazwami typedef.

nazwa-typedef:

identyfikator

Deklaracja typedef określa w zwykły sposób (patrz p. A8.6) właściwości typu dla każdej nazwy występującej wśród jej deklaratorów. Po zadeklarowaniu każda nazwa typedef jest składniowo równoważna ze słowem kluczowym specyfikatora typu dla związanego z nią typu.

Na przykład po deklaracjach

typedef long Blockno, *Blockptr; typedef struct { double r, theta; } Complex;

wszystkie konstrukcje

Blockno b; extern Blockptr bp;

Complex z, *zp;

są poprawnymi deklaracjami. Typem zmiennej b jest long, typem bp jest „wskaźnik do long”, typem z jest wskazana struktura, a typem zp jest wskaźnik do takiej struktury.

Deklaracje typedef nie wprowadzają nowych typów, tylko synonimy dla typów, które mogłyby być określone w inny sposób. Zatem w powyższym przykładzie b ma taki sam typ, jak inne obiekty typu long.

Nazwy typedef mogą być ponownie zadeklarowane w węższym zasięgu pod warunkiem, że zbiór specyfikatorów typu nie jest pusty. Na przykład

extern Blockno;

nie deklaruje ponownie Blockno, ale extern int Blockno; tak.

A9 INSTRUKCJE _


A8.10 Równoważność typów

Dwie listy specyfikatorów typu są równoważne, jeśli zawierają ten sam zestaw specy-fikatorów typu, wliczając w to te specyfikatory, które wynikają z innych (np. samotne long implikuje long int). Struktury, unie i wyliczenia z różnymi etykietkami są różne; także struktury, unie i wyliczenia bez etykietek wprowadzają typy unikalne.

Dwa typy są takie same, jeśli ich deklaratory abstrakcyjne (p. A8.8), ewentualnie po rozwinięciu typów typedef i usunięciu nazw parametrów funkcji, są takie same aż po równoważność list specyfikatorów typu. Rozmiary tablic i typy parametrów funkcji są tu znaczące.


Instrukcje

Jeśli nie powiedziano inaczej, instrukcje są wykonywane sekwencyjnie. Instrukcje wykonuje się w celu osiągnięcia pewnych efektów; instrukcje nie mają wartości. Rozróżnia się kilka grup instrukcji.

instrukcja:

instrukcja-etykietowana instrukcja-wyrażeniowa instrukcja-złoiona instrukcja-wyboru instrukcja-powtarzania instrukcja-skoku

A9.1 Instrukcje etykietowane

Instrukcje mogą być poprzedzone przedrostkami etykietowymi.

instrukcja-etykietowana:

identyfikator : instrukcja case wyrażenie-stałe : instrukcja default: instrukcja

Etykieta składająca się z identyfikatora deklaruje ten identyfikator. Jedynym sposobem skorzystania z takiego identyfikatora jest użycie go w instrukcji goto. Zasięgiem tego identyfikatora jest bieżąca funkcja. Etykiety tworzą oddzielną przestrzeń nazw, nie wchodzą więc w konflikt z innymi identyfikatorami, a także nie można ich ponownie zadeklarować. Patrz p. Al 1.1.

295


Wyszukiwarka

Podobne podstrony:
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____.____A2.5.2 Stałe znakowe Stała znakowa jest ciągiem zł
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____ Wynikiem tej operacji jest bitowa różnica symetryczna
ANSI C 3 DODATEK A PRZEWODNIK JĘZYKA C____- tablicą o pięciu elementach, z których każdy jest tabl
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C struktura-unia: jeden z struct union lista-deklaracji-skład
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C_________A2.1 Jednostki leksykalne Istnieje sześć klas jedno
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C------- czaj umieszczane w oddzielnych wierszach; w kilku pr
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 4 DODATEK A PRZEWODNIK JĘZYKA C_______ wynikiem jest 1; jeśli odnosi się do tablicy, to wyn
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA CA7.8 Operatory przesunięcia Operatory przesunięcia « i » są
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
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA CA8.6 Znaczenie deklaratorów Lista deklaratorów pojawia się p

więcej podobnych podstron