在C ++标准的16.1.4(条件包含)中,它说:
出于此令牌转换和评估的目的,所有有符号和无符号整数类型的表现形式分别与intmax_t或uintmax_t具有相同的表示形式。
我不明白这一点。它的意思是“表现得好像它们具有相同的表现形式”?
integer-literals
被标记为特定的基本类型,具体取决于它们的值和后缀,如2.14.2.2中所述。
16.1.4的引言是否说intmax_t
和uintmax_t
以某种方式“替换”了他们的类型? (这是否完全等同于将整数文字静态转换为intmax_t
或uintmax_t
?)
答案 0 :(得分:2)
它基本上意味着预处理器不必处理
带有类型信息;它可以完成所有的积分算术
在单一类型。大多数时候,它不会有所不同,
但这确实意味着会产生UINT_MAX + 1U
之类的东西
在一个非常大的数字,在预处理器之外,它
将导致0
。