Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.3.5 整数常量

与表达式一样,有些整型常量的类型规则已更改。在 K&R C 中,无后缀二进制常量仅在其值足以表示 int 时才具有类型 int。无后缀八进制或十六进制常量仅在其值足以表示 unsigned int 时才具有类型 int。否则,整型常量的类型为 long。有时,值用结果类型不足以表示。在 1990 ISO/IEC C 标准中,常量类型是以下列表中与值对应的第一个类型:

  • 无后缀十进制:intlongunsigned long

  • 无后缀八进制或十六进制:intunsigned intlongunsigned long

  • U 后缀:unsigned intunsigned long

  • L 后缀:longunsigned long

  • UL 后缀:unsigned long

当您使用 -xtransition 选项时,对于其行为可能会根据所涉及常量的类型处理规则而更改的任何表达式,ISO C 编译器会向您发出警告。旧整形常量类型处理规则仅在转换模式下使用。ISO 和符合模式使用新规则。


注 -  无后缀十进制常量的类型处理规则已按照 1999 ISO C 标准更改。请参见整型常量