int16_t声明的类型是<stdint.h> 保证签名的,还是应该签名?我认为它必须签名,但令人惊讶的是我似乎无法找到任何明确提到这一点的确凿证据(即对规范的引用).
有人可以证实这一点吗?如果可能的话,我真的很感激具体参考规范.
n1256 7.18.1p1说:
当typedef名称仅在初始u的存在或不存在时有所不同时,它们应表示6.2.5中描述的相应的有符号和无符号类型; 提供这些相应类型之一的实现也应提供另一种.
由于存在a int16_t和a uint16_t,int16_t因此签名.
或者确实是7.18.1.1p1:
typedef name intN_t指定一个有符号整数类型,其宽度为N,没有填充位和二进制补码表示.因此,int8_t表示具有正好8位宽度的有符号整数类型.
哪个更明确.
编辑:虽然严格来说,int16_t不保证签名,因为它不能保证存在.例如,如果您有CHAR_BIT == 9,则不能有int16_t类型.
| 归档时间: |
|
| 查看次数: |
8302 次 |
| 最近记录: |