ANSI C 8

ANSI C 8



DODATEK A PRZEWODNIK JĘZYKA C______

inicjowana-lista-deklaratorów:

inicjowany-deklarator

inicjowana-lista-deklaratorów , inicjowany-deklarator

inicjowany-deklarator: deklarator

deklarator = inicjator

Deklaratory zostaną omówione później (p. A8.5); deklarator zawiera deklarowaną nazwę. Deklaracja musi zawierać co najmniej jeden deklarator albo jej specyfikator typu musi deklarować etykietkę struktury, etykietkę unii lub składowe wyliczenia; pusta deklaracja jest zabroniona.

A8.1 Specyfikatory klasy pamięci

Specyfikatorami klasy pamięci są:

specyfikator-klasy-pamięci:

auto

register

static

extern

typedef

Znaczenie klas pamięci omówiono w p. A4.

Specyfikatory auto i register nadają deklarowanemu obiektowi automatyczną klasę pamięci i mogą być stosowane wyłącznie wewnątrz funkcji. Takie deklaracje są jednocześnie definicjami i powodują zarezerwowanie pamięci. Deklaracja register jest równoważna z deklaracją auto, ale wskazuje, że deklarowany obiekt będzie często używany. W rejestrach maszyny mieści się tylko kilka obiektów i tylko niektóre ich typy są dozwolone - ograniczenia zależą od implementacji. Mimo to do obiektów zadeklarowanych jako register nie wolno stosować jednoargumentowego operatora adresu & - ani jawnie, ani niejawnie.

Zasada zabraniająca obliczania adresu obiektu zadeklarowanego jako register, lecz faktycznie występującego jako auto, jest nowa.

Specyfikator static nadaje deklarowanemu obiektowi statyczną klasę pamięci i może być stosowany zarówno wewnątrz, jak i na zewnątrz funkcji. Wewnątrz funkcji ten specyfikator powoduje zarezerwowanie pamięci, oznacza więc definicję. W punkcie Al 1.2 omówiono znaczenie tego specyfikatora na zewnątrz funkcji.

A8 DEKLARACJE____


Wewnątrz funkcji deklaracje ze specyfikatorem extern wskazują, że klarowanych obiektów będzie zarezerwowana gdzie indziej. W punkcie Al 1.2 omówiono znaczenie tego specyfikatora na zewnątrz funkcji.

Specyfikator typedef nie rezerwuje pamięci. Zalicza się go do specyfikatorów klasy pamięci wyłącznie dla składniowej wygody; będzie omówiony w p. A8.9.

W deklaracji może wystąpić co najwyżej jeden specyfikator klasy pamięci. Jeśli nie podano żadnego, to obowiązują następujące zasady: dla obiektów zadeklarowanych wewnątrz funkcji przyjmuje się klasę auto; dla funkcji zadeklarowanych wewnątrz funkcji przyjmuje się extem; obiekty i funkcje zadeklarowane na zewnątrz funkcji uważa się za statyczne z łącznością zewnętrzną. Patrz p. A10-Al 1.

A8.2 Specyfikatory typu

Specyfikatorami typu są:

specyfikator-typu:

void

char

short

int

long

float

double

signed

unsigned

specyfikator-struktury-un ii specyfikator- wyliczenia nazwa-typedef

Wraz ze specyfikatorem int można użyć jednego ze specyfikatorów long lub short; znaczenie jest takie samo, jakby słowo int było pominięte. Słowo long można podać razem z double. Co najwyżej jeden ze specyfikatorów signed lub unsigned może wystąpić wraz ze słowem int bądź z jego odmianą long lub short, bądź z char. Każdy z nich może wystąpić samodzielnie - wtedy przyjmuje się int. Specyfikator signed przydaje się do wymuszenia znaku arytmetycznego dla obiektów typu char; dla pozostałych typów całkowitych jest zbędny, acz dozwolony.

Oprócz powyższych kombinacji w deklaracji może wystąpić co najwyżej jeden specyfikator typu. Jeśli pominięto specyfikator typu, to przyjmuje się int.

279


Wyszukiwarka

Podobne podstrony:
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C_________ Wszystkie z typów zmiennopozycyjnych: pojedynczej
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C stałe przypadków są różne od wartości wyrażenia i nie wystę
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C ______ wyrażenie-XOR: wy rażenie-AND wyraż.enie-XOR ~ wy
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 7 DODATEK A PRZEWODNIK JĘZYKA C------- czaj umieszczane w oddzielnych wierszach; w kilku pr
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 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 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
ANSI C 3 DODATEK A PRZEWODNIK JĘZYKA C____- tablicą o pięciu elementach, z których każdy jest tabl

więcej podobnych podstron