ANSI C 9

ANSI C 9



DODATEK A PRZEWODNIK JĘZYKA C________■

Kwalifikatory typu wskazują specjalne właściwości deklarowanych obiektów.

kwalifikator-typu:

const

vo!atile

Kwalifikatory mogą wystąpić z każdym specyfikatorem typu. Obiekt const (stały) może być inicjowany, ale nie można mu później przypisać wartości. Dla obiektów volatile (ulotny) nie ma interpretacji niezależnej od implementacji.

Właściwości const i volatile są w ANSI C nowe. Kwalifikator const służy do wskazania obiektów, które można umieścić w pamięci chronionej przed zapisem i, być może, zwiększyć podatność programu na optymalizację. Kwalifikator volatile służy do wyłączenia deklarowanego obiektu z ewentualnej optymalizacji. Na przykład w maszynach z mapowaną pamięcią wejścia-wyjścia wskaźnik do rejestru urządzenia mógłby być zadeklarowany jako wskaźnik do volatile, aby zapobiec usunięciu przez kompilator pozornie zbędnych odwołań do obiektu poprzez ten wskaźnik*. Kompilator może ignorować specyfikatory const, ale powinien sygnalizować jawne próby zmiany wartości obiektów o takim specyfikatorze.

A8.3 Deklaracje struktur i unii

Struktura jest obiektem składającym się z ciągu nazwanych składowych o różnych typach. Unia jest obiektem, który w danej chwili zawiera jediją ze swoich kilku składowych o różnych typach. Specyfikatory struktur i unii mają taką samą postać.

specyfikator-struktury-unii:

struktura-unia identyfikatoropc { lista-deklaracji-składowych } struktura-unia identyfikator

struktura-unia:

struct

union

Lista deklaracji struktury jest ciągiem deklaracji składowych struktury lub unii.

Chodzi o to, że rejestry urządzeń zewnętrznych zmieniają wartości na skutek zdarzeń zewnętrznych, w minimalnym stopniu kontrolowanych przez program, i w związku z tym wymykają się spod ogólnie stosowanych algorytmów optymalizacyjnych. - Przyptłum.

A8 DEKLARAC.JF I

I powered by 1

lista-deklaracji-składowych: 1

| Mi sio! |

deklaracja-składowych

lista-deklaracji-składowych deklaracja-składowych deklaracja-składowych:

lista-spec-kwal lista-deklaratorów-składowych ; lista-spec-kwal:

specyfikator-typu lista-spec-kwalopc kwalifikator-typu lista-spec-kwal^

lista-deklaratorów-składowych: deklarator-składowej

lista-deklaratorów-składowych , deklarator-składowej

Zazwyczaj deklarator-składowej jest po prostu deklaratorem elementu struktury lub unii. Składową struktury może też być grupa bitów o podanej długości. Taką składową nazywa się polem bitowym lub po prostu polem\ jej długość jest oddzielona od deklaratora nazwy pola dwukropkiem.

deklarator-składowej: deklarator

deklarator„pc : wyraienie-stałe Specyfikator typu o postaci:

struktura-unia identyfikator { lista-deklaracji-składowych }

deklaruje identyfikator jako etykietkę struktury lub unii, których budowę opisuje lista. Późniejsze deklaracje na tym samym poziomie lub w zagnieżdżonych blokach mogą odnosić się do tego samego typu przez podanie samej etykietki, bez całej listy deklaracji składowych:

struktura-unia identyfikator

Wystąpienie takiego specyfikatora bez listy, ale z etykietką, dla której brak deklaracji, oznacza typ niekompletny. Obiekty z niekompletnym typem struktury lub unii mogą wystąpić w kontekstach, w których ich rozmiar nie ma znaczenia, na przykład w deklaracjach (nie definicjach) przy określaniu wskaźnika lub tworzeniu typu (typedef), ale nigdzie indziej. Ten typ stanie się kompletny po późniejszym napotkaniu specyfikatora z tą samą etykietką, zawierającego listę deklaracji. Nawet w specyfikatorach z listą deklarowany typ struktury lub unii jest niekompletny wewnątrz listy - staje się on kompletny dopiero po napotkaniu klamry } zamykającej specyfikator.

Struktura nie może zawierać składowej o typie niekompletnym. Nie można zatem zadeklarować struktury lub unii zawierającej własne wcielenie. Poza nadaniem nazwy dla typu struktury lub unii, etykietki umożliwiają jednak definiowanie struktur odwo-

281


Wyszukiwarka

Podobne podstrony:
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 9 DODATEK A PRZEWODNIK JĘZYKA C________ jednostka-tłumaczen
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C___ nazwa-typu: lista-spec-kwal
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C wiersz-sterujący: #    define identyfikator
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C__________ rekurencyjnie, podskładowych nie może być kwalifi
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 8 DODATEK A PRZEWODNIK JĘZYKA C_________ Wszystkie z typów zmiennopozycyjnych: pojedynczej
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 8 DODATEK A PRZEWODNIK JĘZYKA
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