2013年5月26日日曜日

PIC C18 メモ( enum の活用 )

-----------------------------
enum の活用(一般)
-----------------------------
enum xxxx { HL, LL, WAIT };
  • HL=0, LL=1 =WAIT=2 が自動的に定義される
  • C18では char 型
  • 連続した値の #define の代用
  • xxxx はタグ名、省略可
enum xxxx { HL, LL, WAIT } yyyy;
enum { HL, LL, WAIT } yyyy;
enum { HL, LL, WAIT };
  • yyyy は変数名、省略可
  • このまま変数名として使用でき、その変数には、他の値を代入することもできてしまう
typedef enum xxxx { HL, LL, WAIT } yyyy;
typedef enum { HL, LL, WAIT } yyyy;
typedef enum { HL, LL, WAIT };
  • 型の別名宣言により、yyyy joken = WAIT; のように型名として使える
      -----------------------------
      enum の活用(配列の要素名)
      -----------------------------
      enum type { Atype, Btype, Ctype, TYPEmax };
      • #define TYPEmax     4
        を別に定義する必要がなくなる
      • 配列の要素名と個数を同時に一個所で定義できる
      ------------------ -----------
      enum の活用(ビット指定)
      -----------------------------
      enum switch { Asw=0x01, Bsw=0x02, Csw=0x04, Dsw=0x08 };
      • 対応するスイッチのビット指定も一個所でできる
      2009.8 - 2013.05.26