
上QQ阅读APP看书,第一时间看更新
1.4 整型常量
如果一个整型常量的第一个字符是数字0,那么该常量将被视作八进制数。因此,10与010的含义截然不同。此外,许多C编译器会把8和9也作为八进制数字处理。这种多少有点奇怪的处理方式来自八进制数的定义。例如,0195的含义是1×82+9×81+5×80,也就是141(十进制)或者0215(八进制)。我们当然不建议这种用法,ANSI C标准也禁止这种用法。
需要注意以下这种情况,有时候在上下文中为了格式对齐的需要,可能无意中将十进制数写成了八进制数,例如:
struct {
int part_number;
char *description;
}parttab[] = {
046, "left-handed widget" ,
047, "right-handed widget" ,
125, "frammis"
};