《C陷阱与缺陷》一1.4 整型常量

    xiaoxiao2024-02-01  138

    本节书摘来自异步社区《C陷阱与缺陷》一书中的第1章,第1.4节,作者 【美】Andrew Koenig,更多章节内容可以访问云栖社区“异步社区”公众号查看

    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" }; 相关资源:C陷阱与缺陷 第二版 高清扫描版
    最新回复(0)