我想知道是否有一个 GCC C 编译器指令允许我确定结构打包的位顺序?喜欢的东西:
#pragma bit_order left
这种需要的理由是我有以下结构:
struct {
union {
unsigned char BYTE;
struct {
unsigned char B0: 1;
unsigned char B1: 1;
unsigned char B2: 1;
unsigned char B3: 1;
unsigned char B4: 4;
}BIT;
}ITEM;
} myStruct;
使用这种结构,我希望编译器以这种方式打包它:
Bit order: | 7 6 5 4 3 2 1 0 |
Label: |B0 B1 B2 B3 B4 B5 B6 B7 |
而不是 GCC 是如何做到的:
Bit order: | 7 6 5 4 3 2 1 0 |
Label: |B7 B6 B5 B4 B3 B2 B1 B0 |
我正在处理具有巨大头文件的 MCU,这些头文件具有根据规定的硬件地址计算位偏移的结构。我希望 GCC C 编译器中有一个编译器指令可以在我尝试翻转制造商提供的文件中的所有字段之前为我进行位顺序交换。