Obecnie czytam projekt specyfikacji C11. Nowe wprowadzone słowa kluczowe: _Bool, _Alignof, _Atomic
wszystkie wyglądają jak niestandardowe rozszerzenia, a nie standardowe zastrzeżone słowa kluczowe, takie jak struct, union, int
.
Zdaję sobie sprawę, że standard zasadniczo składa się ze znormalizowanych rozszerzeń ... ale nadal jest to okropne! Może wkrótce skończymy z __Long_Long_Reallylong_Integer_MSVC_2020_t
pełzaniem w standardzie!
Czy zgodność wsteczna niestandardowego kodu jest jedyną przyczyną nowego stylu słów kluczowych?
<stdbool.h>
plik nagłówka dowolnej implementacji C11 musi zawierać makro preprocesora, takie jak #define bool _Bool
. To fajne rozwiązanie, ponieważ zachowuje kompatybilność wsteczną, ale pozwala nowemu kodowi, w tym nowemu plikowi nagłówkowemu, na stosowanie bardziej atrakcyjnej składni.