2013年6月12日水曜日

PIC C18 メモ(共用体)

-----------------------------
基本
-----------------------------
union name{ struct{ int a; int b; }; char c; }bar;
      ~~~~共用体タグ(共用体の名前)          ~~~nameという型の変数bar

  • 定義するときはタグか変数のどちらか省略できる
  • char a ,b; の書き方が可能なように、同時に複数の変数定義も可
  • 同じタグ名の構造体同士は丸ごと代入可能
-----------------------------
共用体の初期化
-----------------------------
union { short long okcount; char byte[ 3 ]; } cat1 = 0x010203;  //OK
union { char byte[ 3 ]; short long okcount; } cat2 = 0x010203;  //NG
union { char byte[ 3 ]; short long okcount; } cat2 = {0x01,0x02,0x03,}; //OK

  • 先に書いた形式で初期化すること(二行目の NG は正しく初期化できない)
2010.05 - 2013.07.02