Bit Field Formations
Crescioli, Phil
Phil.Crescioli@gd-ais.com
Fri Jan 21 15:53:00 GMT 2005
Hello all,
I'm using gcc version 3.2.2 (RedHat Linux 3.2.2-5) and am having some
questions with regard to how gcc forms bit-fields.
If I create a structure that includes bit-field definitions, how are the
bit fields assigned within a word. In the example below, is variable x1
assigned to bits 31-28 or bits 3-0? My assumption is that the fields are
assigned in order so that the example produces either:
X1:31-28, x2:27-26, x3:25-23, x4:22-18, x5:17-13, x6:12, x7:11, x8:10-6,
x9:5-0
Or
X1:3-0, x2:5-4, x3:8-6, x4:13-9, x5:18-14, x6:19, x7:20, x8:25-21,
x9:31-26
Which is correct?
typdef struct
{
double a;
double b;
short int c;
short int d;
unsigned int e;
UINT32 x1 : 4;
UINT32 x2 : 2;
UINT32 x3 : 3;
UINT32 x4 : 5;
UINT32 x5 : 5;
UINT32 x6 : 1;
UINT32 x7 : 1;
UINT32 x8 : 5;
UINT32 x9 : 6;
unsigned int f;
float g;
} TEST_STRUCT
Thanks,
Phil Crescioli
General Dynamics - Advanced Information Systems
Phil.Crescioli@gd-ais.com
More information about the Gcc-help
mailing list