Atualmente, estou lendo um rascunho da especificação C11. As novas palavras-chave introduzidas: _Bool, _Alignof, _Atomic
todas parecem extensões personalizadas, em vez de palavras-chave reservadas padrão struct, union, int
.
Sei que o padrão consiste basicamente em extensões padronizadas ... mas ainda assim, isso é horrível! Talvez em breve __Long_Long_Reallylong_Integer_MSVC_2020_t
acabemos rastejando no padrão!
A compatibilidade com versões anteriores de código não padrão é a única razão do novo estilo das palavras-chave?
<stdbool.h>
arquivo de cabeçalho de qualquer implementação C11 deve incluir uma macro de pré-processador, como #define bool _Bool
. Essa é uma solução interessante, pois mantém a compatibilidade com versões anteriores, mas permite que qualquer novo código, que inclua o novo arquivo de cabeçalho, use a sintaxe mais atraente.