我碰到的代码行其中有这样的事情下面#define中使用0x1的含义是什么?
#define IM 0x1
我知道什么IM代表,但我知道0x1
代表什么,以及它的使用及其使用的意义是什么我intrested在定义语句中。
我是C的新手,我没有搜索这个特定的项目,但找不到它。预先感谢您的帮助。
我碰到的代码行其中有这样的事情下面#define中使用0x1的含义是什么?
#define IM 0x1
我知道什么IM代表,但我知道0x1
代表什么,以及它的使用及其使用的意义是什么我intrested在定义语句中。
我是C的新手,我没有搜索这个特定的项目,但找不到它。预先感谢您的帮助。
它只是一个以十六进制定义的数字(基数为16)。这可能用于避免代码中的幻数。魔术数字是程序员在代码中直接使用数字而没有解释。例如
int x = 32;
x -= 8;
此代码一起做几乎没有任何意义,但如果我这样做
#define TOTAL_BITS 32
#define BITS_PER_BYTE 8
int x = TOTAL_BITS;
x -= BITS_PER_BYTE;
的代码是显著更清晰。无论如何,宏(即#define
)直接将它们的内容替换为它们在代码中显示的位置。所以如果你打算使用表达式或类似的东西,最好用parens包围它。
这是以十六进制(基数16)形式表示的数字。
#define IM 0x1
这是一个其他位置标记系统:十六进制。这里是数字“1”的十六进制形式。
可能作者使用0x1来遵守其他变量的隐式标准,如Sasquiha所举例说明的。 – Spidey 2012-04-25 13:46:09