我碰到的代碼行其中有這樣的事情下面#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