ANSI C 5

ANSI C 5



DODATEK A PRZEWODNIK JĘZYKA C_________

A2.1 Jednostki leksykalne

Istnieje sześć klas jednostek leksykalnych: identyfikatory, słowa kluczowe, stałe, napisy, operatory oraz różne separatory. Ignoruje się odstępy, znaki poziomej i pionowej tabulacji, znaki nowego wiersza i nowej strony oraz komentarze (wszystkie razem zwane „białymi plamami”), chyba że rozdzielają jednostki leksykalne. Niektóre białe plamy są jednak potrzebne do rozdzielenia przylegających do siebie identyfikatorów, słów kluczowych i stałych.

Jeżeli rozbiór leksykalny wejściowego tekstu przeprowadzono do pewnego znaku włącznie, to za następną jednostkę leksykalną uważa się najdłuższy ciąg znaków, z których można utworzyć jednostkę.

A2.2 Komentarze

Komentarz rozpoczyna się znakami /*, a kończy się znakami */. Komentarze nie mogą być zagnieżdżone i nie mogą wystąpić w napisach i stałych znakowych.

A2.3 Identyfikatory (nazwy)

Identyfikator jest ciągiem liter i cyfr. Pierwszym znakiem ciągu musi być litera; znak podkreślenia _ zalicza się do liter. Rozróżnia się wielkie i małe litery alfabetu. Identyfikatory mogą być dowolnej długości, przy czym dla identyfikatorów wewnętrznych znaczenie ma co najmniej 31 znaków początkowych; w niektórych implementacjach może być ich więcej. Identyfikatorami wewnętrznymi są nazwy makr i wszystkie inne nazwy nie mające zewnętrznej łączności (p. Al 1.2). Identyfikatory o zewnętrznej łączności są bardziej ograniczone: w konkretnej implementacji ich znacząca długość może wynosić tylko sześć początkowych znaków bez rozróżniania małych i wielkich liter.

A2.4 Słowa kluczowe

Następujące identyfikatory są zastrzeżone dla słów kluczowych i nie mogą być inaczej używane:

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

if

static

while

A2 KONWENCJE LEKSYKALNE


W niektórych implementacjach rezerwuje się również słowa fortran

Słowa kluczowe const, signed i volatile są nowe w ANSI C; enum i void - nieznane za czasów pierwszego wydania książki - są w powszechnym użyciu; entry, nigdy nie używane, nie jest już zarezerwowane.

A2.5 Stałe

Wyróżnia się kilka rodzajów stałych. Wszystkie mają jakiś typ; typy podstawowe są omówione w p. A4.2.

stała:

stała-całkowita

stała-znakowa

stała-zmiennopozycyjna

stała-wyliczenia

A2.5.1 Stałe całkowite

Stałą całkowitą składającą się z ciągu cyfr uważa się za ósemkową, jeżeli rozpoczyna się cyfrą 0; w przeciwnym przypadku - za dziesiętną. Stałe ósemkowe nie zawierają cyfr 8 i 9. Ciąg cyfr rozpoczynający się znakami 0x lub 0X (cyfra zero) jest stałą szesnastkową. Do cyfr szesnastkowych zalicza się litery od a (lub A) do f (lub F)

0    wartościach od 10 do 15.

Stała całkowita może być opatrzona przyrostkiem u lub U do oznaczenia, że jest bez znaku. Może być również opatrzona przyrostkiem I (litera 1) lub L do oznaczenia, że jest długa (long).

Typ stałej całkowitej zależy od jej postaci, wartości i przyrostka. (Omówienie typów znajduje się w p. A4.) Typem stałej dziesiętnej bez przyrostka jest pierwszy z następujących typów, w którym można wyrazić jej wartość: int, long int lub unsigned long int. Typem stałej ósemkowej lub szesnastkowej bez przyrostka jest pierwszy możliwy z następujących typów: int, unsigned int, long int lub unsigned long int. Jeśli stała ma przyrostek u lub U, to jej typem jest pierwszy możliwy z typów unsigned int lub unsigned long int. Jeśli stała ma przyrostek I lub L, to możliwymi typami są long int

1    unsigned long int.

Opracowanie typów stałych całkowitych daleko odbiega od tego z pierwszego wydania książki, gdzie duże stałe miały po prostu typ long. Przyrostki U są nowe.

Kompilatory działające pod systemem operacyjnym MS-DOS na maszynach IBM-PC zwykle rezerwują również słowa near i far dla oznaczenia różnej długości wskaźników. - Przyp. tłum.

253


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 5 DODATEK A PRZEWODNIK JĘZYKA CA7.8 Operatory przesunięcia Operatory przesunięcia « i » są
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C Struktury i tablice są obiektami złożonymi. Jeśli obiekt zł
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C____A12.9 Pusta instrukcja preprocesora Wiersz zawierający j
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C________ jednostka-tłumaczen
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 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
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA CA8.6 Znaczenie deklaratorów Lista deklaratorów pojawia się p

więcej podobnych podstron