4.2.4.9 ビット・フィールドの割り付け

CC-RHは,ビット・フィールドの並び順の切り替えを指定できます。

(1)

ビット・フィールドの割り付け指定の形式

ビット・フィールドの割り付けは次の形式で指定します。

#pragma bit_order [{left|right}]

left を指定した場合は上位ビット側から,right を指定した場合は下位ビット側から,それぞれメンバが割り付けられます。

デフォルトはrightとなります。

例 1.

#pragma bit_order right
struct {
    unsigned long   f1:30;
    int             f2:14;
    unsigned int    f3:6;
} flag;

この例に示したビット・フィールドに対する内部表現は,次のようになります

図 4.9

ビット・フィールドの内部表現

 

例 2.

#pragma bit_order left
struct {
    unsigned long   f1:30;
    int             f2:14;
    unsigned int    f3:6;
} flag;

この例に示したビット・フィールドに対する内部表現は,次のようになります。

図 4.10

ビット・フィールドの内部表現

 

例 3.

#pragma bit_order right
struct {
    int             f1:5;
    char            f2:4;
    int             f3:6;
} flag;

この例に示したビット・フィールドに対する内部表現は,次のようになります

図 4.11

ビット・フィールドの内部表現

 

例 4.

#pragma bit_order left
struct {
    int             f1:5;
    char            f2:4;
    int             f3:6;
} flag;

この例に示したビット・フィールドに対する内部表現は,次のようになります

図 4.12

ビット・フィールドの内部表現