打印时错误地将宏转换为int

时间:2018-12-12 01:12:16

标签: c octal

所以我有以下代码:

#define x 010000

我的意图是将x定义为十进制的“ 10000”,但是当我打印出上面的代码时,它被打印为4096。 我不明白如何将其转换为4096。 有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

以0开头的数字在C中被视为八进制。010000是用八进制表示法编写的整数文字。其值为8**4=4096。删除第一个0。