異なるビットフィールドのメンバを設定するためには、そのたびにビットフィールドを含むデータにアクセスしなければなりません。関連するビットフィールドを同じ構造体内にまとめて割り付けることによって、このアクセスを一度で済ますことができます。
【使用例】
同じ構造体に関連するビットフィールドを割り付けることによってサイズが改善する例を示します。
改善前ソースコード
struct str 
{
         Int flag1:1; 
}b1,b2,b3; 
void func() 
{
         b1.flag1 = 1; 
         b2.flag1 = 1; 
         b3.flag1 = 1; 
} 
 | 
 
改善前アセンブリ展開コード
_func: 
       MOV.L #_b1,R5 
       BSET #00H,[R5] 
       MOV.L #_b2,R5 
       BSET #00H,[R5] 
       MOV.L #_b3,R5 
       BSET #00H,[R5] 
       RTS 
 | 
 
改善後ソースコード
struct str 
{
           int flag1:1; 
           int flag2:1; 
           int flag3:1; 
}a1; 
void func() 
{
           a1.flag1 = 1; 
           a1.flag2 = 1; 
           a1.flag3 = 1; 
} 
 | 
 
改善後アセンブリ展開コード
__func: 
        MOV.L #_a1,R4 
        MOVU.B [R4],R5 
        OR #07H,R5 
        MOV.B R5,[R4] 
        RTS 
 |