1. ホーム
  2. c++

[解決済み] BIT0、BIT1、BIT2などの定義 なし #define

2022-02-08 07:48:11

質問

C++でBIT0, BIT1, BIT2を#defineを使わずに別の方法で定義することは可能でしょうか?

#define BIT0 0x00000001
#define BIT1 0x00000002
#define BIT2 0x00000004

そして、同じものを使って、その断片から状態を作っていくのです。

#define MOTOR_UP   BIT0
#define MOTOR_DOWN BIT1

注:64ビットではなく、32ビットのみを使用しています。また setBit(flagVariable, BIT) (結果的に clrBit マクロでビットを設定し、ビット演算子でビットが設定されているかどうかを比較します。

if (flagVariable & MOTOR_UP) { 
   // do something
   clrBit(flagVariable, MOTOR_UP);
}

C++でこれらのビットマスクを既に含んでいる型はありますか?

どのように解決するのですか?

いかがでしょうか。

enum Bits
{
    BIT0    = 0x00000001,
    BIT1    = 0x00000004,
    BIT2    = 0x00000008,

    MOTOR_UP    = BIT0,
    MOTOR_DOWN  = BIT1
};