签名/未签名是基本类型的一部分还是限定符

时间:2018-01-20 15:25:06

标签: c++ c qualifiers

Wiki page声称C ++中的限定符为constvolatile

This answer告诉unsignedunsignedshort等也是限定符。虽然问题确实提到它是关于C的,但Wiki page并没有在C方面这么说。对于C,限定符为constvolatilerestrict_Atomic

Stack Overflow的qualifier标记的扩展消息框说

  

限定符会添加额外的"质量",例如指定波动率或   变量的常数

"添加一个额外的质量",从引文中,烧焦/无符号似乎符合条件,它将受限制的额外质量添加到整数,以便它只能保持正数或负数也可以保持正数。

此刻我对这个问题感到困惑。对于 C C ++ signedunsignedshort等等计为基本类型的一部分类型限定符?请详细说明C和C ++中的规则是否不同。

2 个答案:

答案 0 :(得分:3)

在C和C ++中,signedunsignedshortlong都是类型说明符。它们可以与int结合使用,甚至可以隐含。 signedunsigned也可以与char结合使用。

相比之下,限定符几乎可以应用于任何类型。 (没有int& const类型,只有int const&

答案 1 :(得分:2)

根据C11标准(§6.7.3),限定符类型constrestrictvolatile_Atomicsignedunsigned属于说明符§6.7.2)。