ANSI C 2

ANSI C 2



DODATEK C PODSUMOWANIE ZMIAN ków # \ ~ [] { } | ~ (patrz p. A 12.1). Zauważ, że wprowadzone sekwencje trzy znakowe mogą zmienić znaczenie stałych napisowych zawierających ciąg ??.

•    Wprowadzono nowe słowa kluczowe (void, const, volatile, signed, enum). Usunięto martwe słowo kluczowe entry.

•    Zdefiniowano nowe sekwencje specjalne do użytku w stałych znakowych i napisowych. Nie jest zdefiniowany efekt użycia \ ze znakiem nie należącym do zatwierdzonego zestawu sekwencji specjalnych. Patrz p. A2.5.2.

•    Przez wszystkich faworyzowana mała zmiana: 8 i 9 nie są cyframi ósemkowymi.

•    Wprowadzono większą liczbę przyrostków dla oznaczenia typu stałych: U lub L dla całkowitych i F lub L dla zmiennopozycyjnych. Wysubtelniono również zasady rozstrzygania o typach stałych bez przyrostka (p. A2.5).

•    Sąsiadujące ze sobą stałe napisowe są sklejane.

•    Wprowadzono notację dla napisów i stałych znakowych zawierających znaki z rozszerzonego zbioru znaków; patrz p. A2.6.

•    Za pomocą słów kluczowych signed i unsigned można jawnie deklarować, czy stałe znakowe i innych typów mają znak arytmetyczny. Usunięto zwrot long float jako synonim do double, można natomiast używać long double do zadeklarowania dodatkowej precyzji wielkości zmiennopozycyjnych.

•    Od jakiegoś czasu stosuje się zwrot unsigned char. W Standardzie wprowadzono słowo kluczowe signed, by jawnie podkreślać, że obiekty typu char i innych typów arytmetycznych mają znak.

•    Od kilku lat w większości implementacji jest dostępne słowo kluczowe void. Standard wprowadza void 1 jako ogólny typ wskaźnikowy; poprzednio rolę tę pełnił char 1. Jednocześnie ustanowiono jawne zasady dotyczące mieszania wskaźników i liczb całkowitych lub wskaźników różnych typów bez użycia operatora rzutowania.

•    Standard ustala minimalne zakresy dla wartości typów arytmetycznych i wyznacza specjalne nagłówki (<limit.h> i <float.h>), które mają zawierać charakterystyki poszczególnych implementacji.

•    Wyliczenia nie były znane za czasów pierwszego wydania tej książki.

•    Standard adoptuje z języka C++ pojęcie kwalifikatora typu, np. const (p. A8.2).

•    Stałe napisowe już nie mogą być modyfikowane i można je umieszczać w pamięci chronionej przed zapisem.

DODATEK C PODSUMOWANIE ZMIAN_


waj double” mówi się teraz „promuj do najmniejszego, ale nego typu”. Patrz p. A6.5.

•    Stare operatory przypisania, jak =+, zniknęły całkowicie. Ponadto operatory przypisania są pojedynczymi leksemami; w poprzednim wydaniu książki były one parami leksemów i mogły być rozdzielone odstępami.

•    Unieważniono prawo kompilatorów do traktowania operatorów łącznych matematycznie jako łączne obliczeniowo.

•    Wprowadzono jednoargumentowy operator + dla symetrii z jednoargumentowym —.

•    Wskaźnik do funkcji może być używany jako nazewnik funkcji bez jawnego stosowania operatora 2. Patrz p. A7.3.2.

•    Struktury mogą być przypisywane, przekazywane funkcjom i zwracane przez funkcje.

•    Dopuszcza się stosowanie operatora adresu do tablic; wynikiem jest wskaźnik do tablicy.

•    W pierwszym wydaniu książki operator sizeof zwracał typ int; wiele późniejszych implementacji zmieniło to na unsigned. Standard wyraźnie uzależnia ten typ od implementacji, ale wymaga, aby był on (pod nazwą size_i) zdefiniowany w standardowym nagłówku (<stddef.h>). Podobna zmiana dotyczy typu różnicy wskaźników (ptrdiff_t). Patrz p. A7.4.8 i A7.7.

•    Operator adresu & nie może odnosić się do obiektów zadeklarowanych jako register, nawet jeśli w danej implementacji ten obiekt nie jest trzymany w rejestrze.

•    Typem wyrażenia przesunięcia jest typ jego lewego argumentu; prawy argument nie może mieć wpływu na typ wyniku. Patrz p. A7.8.

•    Standard zezwala na tworzenie wskaźnika pokazującego tuż za koniec tablicy i pozwala używać go w obliczeniach i relacjach; patrz p. A7.7.

•    Standard wprowadza (zapożyczając od C++) notację deklaracji prototypu funkcji ustalającego typy parametrów oraz określa jawne oznaczanie funkcji ze zmienną liczbą argumentów i aprobowany sposób postępowania z nimi. Patrz p. A7.3.2, A8.6.3, B7. Starsza notacja jest (z pewnymi ograniczeniami) nadal akceptowana.

•    Puste deklaracje, które nie mają deklaratorów i nie deklarują przynajmniej struktury, unii lub wyliczenia, są przez Standard zabronione. Z drugiej strony, deklaracja tylko z etykietką struktury lub unii zmienia deklarację tej etykietki, nawet jeśli przedtem jej zasięg był szerszy.

347

1

   „Zwykłe przekształcenia arytmetyczne” uległy zmianie. Zamiast „wśród typów całkowitych zawsze zwycięża unsigned; w operacjach zmiennopozycyjnych uży-

2

   Deklaracje zewnętrzne bez jakichkolwiek specyfikatorów i kwalifikatorów (po prostu goły deklarator) są zabronione.


Wyszukiwarka

Podobne podstrony:
ANSI C 3 DODATEK C PODSUMOWANIE ZMIAN •    Deklaracje extern zawarte wewnątrz bloku
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA CA8.6 Znaczenie deklaratorów Lista deklaratorów pojawia się p
ANSI C 2 DODATEK B BIBLIOTEKA STANDARDOWA Tablica B-1. Przekształcenia funkcji printf Znak Typ
3 PODSUMOWANIE W końcowej części lekcji należy zauważyć, że ze zjawiskiem reklamy spotykamy się
zz12 (2) stępnie wszystko cementy wyciec (patrz str. 15). Materiał: Materia* podstawowy patrz Kr. 1
2) Przez Goryczkową 4 /i godz.: Z Zakopanego na Kalatówki (patrz N. 12) 1 /4 godz. (końmi i pieszo)
82810 MF dodatekA03 248 Podstawy matematyczne Aneks A A(1.12) Można wykazać, że leżeli lim an
Scan10178 (2) Tabela 14.4 Podsumowanie zmian w zakresie pH, PaC02 oraz HCO3 w zaburzeniach równowagi
60346 Skrypt PKM 252 310 Zadanie 6.12 Zakładając. ze pasek zębaty 190 XL 025 wykonany będ/ic /. gum
Główne cele wprowadzonych zmian: 2013-04-12
zz12 (2) Materiał: Materiał pods^ywowy: patrz str. 15 ✓    karton jasnożółty,
Historia zmian Data Autor Podsumowanie zmian Wersja Znaczenie zmian 06.11.2015 Jerzy
12. Podsumowanie. Z dzisiejszej lekcji ważne, aby zapamiętać, że: -    Maryja jest na
str. VI TARGOWY DODATEK REKLAMOWY JTAŚMY PRZENOŚNIKOWE UH44S/A 12, Rue Henry Guy 70303 Luxeull

więcej podobnych podstron