C ++ 11条件包含控制表达式“类型表现得如同表示”?

时间:2013-03-04 18:23:06

标签: c++ c++11

在C ++标准的16.1.4(条件包含)中,它说:

  

出于此令牌转换和评估的目的,所有有符号和无符号整数类型的表现形式分别与intmax_t或uintmax_t具有相同的表示形式。

我不明白这一点。它的意思是“表现得好像它们具有相同的表现形式”?

integer-literals被标记为特定的基本类型,具体取决于它们的值和后缀,如2.14.2.2中所述。

16.1.4的引言是否说intmax_tuintmax_t以某种方式“替换”了他们的类型? (这是否完全等同于将整数文字静态转换为intmax_tuintmax_t?)

1 个答案:

答案 0 :(得分:2)

它基本上意味着预处理器不必处理 带有类型信息;它可以完成所有的积分算术 在单一类型。大多数时候,它不会有所不同, 但这确实意味着会产生UINT_MAX + 1U之类的东西 在一个非常大的数字,在预处理器之外,它 将导致0