在C++26中,为什么要新增CHAR_WIDTH,而我们已经有CHAR_BIT?
在阅读 cppreference 时,我注意到C++26增加了一个新的宏,名称为 CHAR_WIDTH。
对我而言,它似乎与 CHAR_BIT 的取值相同,而后者对我来说是 8。
CHAR_BIT 与 CHAR_WIDTH 之间有什么区别?为什么需要 CHAR_WIDTH?
解决方案
这个宏以及C++26中所有标准整数类型的其他 *_WIDTH 宏,与在 C23 中引入的宏保持同步。
C23引入了 *_WIDTH 宏,用来准确指示用于表示值的位数。它们与用于指示类型存储位数的 *_BIT 宏相对立,后者可能包含填充位。
CHAR_BIT 定义了一个字节中的位数,CHAR_WIDTH 定义了数值位数。因为char类型没有填充位,CHAR_WIDTH 被定义为等于 CHAR_BIT。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。