以下のようなコード行に出くわしました
#define IM 0x1
IMが何を表すかは知っていますが、IMが何を0x1
表すのか、その使用法は何か、defineステートメントでの使用法の重要性を知ることに興味があります。
私はCを初めて使用し、この特定のアイテムを検索しましたが、見つかりませんでした。よろしくお願いします。
以下のようなコード行に出くわしました
#define IM 0x1
IMが何を表すかは知っていますが、IMが何を0x1
表すのか、その使用法は何か、defineステートメントでの使用法の重要性を知ることに興味があります。
私はCを初めて使用し、この特定のアイテムを検索しましたが、見つかりませんでした。よろしくお願いします。
これは、16進数(基数16)の1の定義にすぎません。これはおそらく、コード内のマジックナンバーを回避するために使用されます。魔法数は、プログラマーが説明なしにコードで直接数を使用する場合です。例えば
int x = 32;
x -= 8;
このコードはほとんど意味がありませんが、私がこれを行うと
#define TOTAL_BITS 32
#define BITS_PER_BYTE 8
int x = TOTAL_BITS;
x -= BITS_PER_BYTE;
コードは非常に明確です。いずれにせよ、マクロ(つまり#define
)は、その内容をコードに表示される場所に直接置き換えます。したがって、式などを使用する場合は、それを親で囲むのが最適です。
これは 16 進数の 1 で、バイナリ フラグを行う場合は通常このように定義します。だからあなたは持っているでしょう
0x1
0x2
0x4
0x8
0x10
設定しているビットを見ることができます。
これは、16進数(基数16)形式で表されるナンバーワンです。
#define IM 0x1
それは別の位置番号システムです: 16 進数です。ここでは、数値 « 1 » の 16 進数形式です。