打印时宏转换为 int 不正确
incorrect macro conversion to int when printing
所以我有以下代码:
#define x 010000
我的意图是将 x 定义为十进制的“10000”,但是当我打印出上面的代码时,它被打印为 4096。
我不明白它是如何被翻译成 4096 的。
谁能解释一下?
以 0 开头的数字在 C 中被视为八进制数。010000
是以八进制表示法编写的整数文字。它的值为8**4=4096
。删除第一个 0.
所以我有以下代码:
#define x 010000
我的意图是将 x 定义为十进制的“10000”,但是当我打印出上面的代码时,它被打印为 4096。 我不明白它是如何被翻译成 4096 的。 谁能解释一下?
以 0 开头的数字在 C 中被视为八进制数。010000
是以八进制表示法编写的整数文字。它的值为8**4=4096
。删除第一个 0.