C 语言中,有一个神奇的整型常量语法定义—— 如果一个整型的第一个字符是 0 那么该常量将被视作八进制数,而非数理逻辑里的十进制010等于10(十)
。了解进制含义都知道这个数在八进制与十进制上截然不同。在很多公司编程规范里,命令禁止使用八进制常量,有类似需求的使用十六进制代替。
当然,有一种情况需要注意的,在书写代码时候,为了上下文美观需要,忽略这个“神奇的整型常量”的编程者可能无意中把十进制写成了八进制,”好心却做了坏事“。
struct {
int part_number;
char *description;
} parttab [] = {
{ 046, "left-handed widget" },
{ 047, "right-handed widget" },
{ 125, "frammis" },
};