short 或 char(整数)的字面量

car*_*ass 5 c

是否有文字语法来写 acharshort?例如:

  • 4 --> 整数
  • 4L --> 长
  • 4LL --> 长长的
  • 4C ?
  • 4小时?

或者,您是否需要将其转换为文字符号,例如:

  • (char) 4 --> 字符
  • (short) 4 --> 短

注意:即使我将它写为'a',它仍然将其识别为int(至少当我在 VS Code 中检查它时)。

PSk*_*cik 3

短类型(比 窄的类型)没有后缀,int并且您不需要它们。

在预处理器条件之外,后缀可以完全用强制转换或更通用的强制转换和三元运算符(0xfffffffffU不等于,但在 32 位平台上(unsigned)0xfffffffff等于)来完全表达。(1?0xfffffffff:0u)unsigned

在预处理器条件中,强制转换不起作用,因此U如果您需要无符号语义,则至少需要那里的后缀。我猜想,其他后缀只是为了方便需要在 C 语言和预处理器条件中使用宏时使用,尽管类似的东西((type)+42)也可以在这种情况下使用(依赖于扩展为0预处理器条件的关键字)。

正如Eric Pospitschil所指出的,预处理器算术是在intmax_t/中完成的uintmax_t,因此您不需要像在 C 语言中那样扩大常量以防止某些未定义行为的实例。