在某些常量表达式中,由于精度不够而会导致数据丢失。这些类型的问题很难发现。请在常量表达式中显式指定数据类型。通过向每个整型常量的末尾增加 {u,U,l,L} 的某些组合,可以指定其类型。另外,也可以使用强制类型转换来指定常量表达式的类型。例如,
int i = 32; long j = 1 << i; /* j will get 0 because RHS is integer expression */
应当为:
int i = 32; long j = 1L << i;