C23 _BitInt() 和相同宽度的非位精确整数之间有什么区别吗?

Is there any difference between the C23 _BitInt() and a non-bit-precise integer of the same width?

提问人:user16217248 提问时间:10/26/2023 最后编辑:user16217248 更新时间:10/26/2023 访问量:149

问:

即将推出的 C23 标准添加了一个关键字,据我所知,该关键字可用于定义具有特定位数的整数。但是,我找不到太多关于以这种方式声明的类型的内存中表示形式的信息,以及与它们的内存中表示相关的任何行为,例如它们的大小或对齐方式。_BitInt()

因此,类型和相同位宽的“实数”整数类型在行为、表示或对齐要求方面是否存在任何差异?例如,介于 和 或 ?在它们之间打字双关语是否定义明确?_BitInt()_BitInt(32)int32_tint_least32_t

C 存储器 C23 Bitint

评论

0赞 SoronelHaetir 10/26/2023
我不得不认为,就像所有其他类型一样,实际的表示是实现定义的。
0赞 ad absurdum 10/26/2023
对于一个问答来说,这似乎是很多问题。截至 C23,该表示是 2 的补码;位精确有符号和无符号整数类型可能具有填充; 始终包含填充位,对齐方式反映填充位。C23 标准包含大量有关位精度类型的信息;您最好拿起一份 C23 标准草案并阅读此内容,然后提出个别有针对性的问题。sizeof
0赞 user16217248 10/26/2023
@adabsurdum我在工作草案中找不到太多关于这些主题的具体内容。我找不到任何关于它们的对齐方式或大小的信息。
0赞 ad absurdum 10/26/2023
与任何其他整数类型一样,它们必须有足够的位来表示值;填充是实现定义的。尺寸和对齐方式由此而来。
0赞 Andrew Henle 10/26/2023
我在 c23 标准草案中根本没有找到任何提及的实施细节。_BitInt

答: 暂无答案