我目前正在阅读C11规范的草案。新引入的关键字:_Bool, _Alignof, _Atomic
都感觉像是自定义扩展名,而不是标准的保留关键字,如struct, union, int
。
我意识到该标准基本上由标准化扩展组成...但是,这真是太糟糕了!也许我们很快就会__Long_Long_Reallylong_Integer_MSVC_2020_t
以标准为最终结局!
非标准代码的向后兼容性是关键字新样式的唯一原因吗?
2
不,我不会担心像这样的长类型。_,az,AZ和0-9的字母和数字组合的数量表示它们可能很短并且很难记住。
—
尼尔,
通常在相关的标准库头文件中定义每个关键字的漂亮同义词。例如,任何C11实现的
—
andrew.punnett 2014年
<stdbool.h>
头文件都必须包含预处理程序宏,例如#define bool _Bool
。这是一个很好的解决方案,因为它保留了向后兼容性,但允许任何新代码(包括新头文件)使用更具吸引力的语法。