4.2.4.9 Bit field assignment

CC-RH can switch the order of a bit field.

(1)

Format for specifying bit field assignment

Specify bit field assignment using the following format.

#pragma bit_order [{left|right}]

 

If left is specified, then members are assigned from the MSB; if right is specified, then they are assigned from the LSB.

Example 1.

The default is right.

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

 

The internal representation for the bit field in the above example is as follows.

Figure 4.11

Internal Representation of Bit Field

Example 2.

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

 

The internal representation for the bit field in the above example is as follows.

Figure 4.12

Internal Representation of Bit Field

Example 3.

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

 

The internal representation for the bit field in the above example is as follows.

Figure 4.13

Internal Representation of Bit Field

Example 4.

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

 

The internal representation for the bit field in the above example is as follows.

Figure 4.14

Internal Representation of Bit Field