В настоящее время я читаю черновик спецификации C11. Новые введенные ключевые слова: _Bool, _Alignof, _Atomic
все они выглядят как пользовательские расширения, а не как стандартные зарезервированные ключевые слова struct, union, int
.
Я понимаю, что стандарт в основном состоит из стандартизированных расширений ... но, тем не менее, это ужасно! Может быть, мы скоро закончим с __Long_Long_Reallylong_Integer_MSVC_2020_t
ползучим в стандарте!
Является ли обратная совместимость нестандартного кода единственной причиной нового стиля ключевых слов?
<stdbool.h>
заголовочный файл реализации C11 должен включать макрос препроцессора, такой как #define bool _Bool
. Это аккуратное решение, поскольку оно сохраняет обратную совместимость, но позволяет любому новому коду, который включает новый заголовочный файл, использовать более привлекательный синтаксис.