
Next: Exercises Up:
Low Level Operators Previous:
Bitwise Operators
Bit Fields allow the packing of data in a structure. This is
especially useful when memory or data storage is at a premium. Typical examples:
- Packing several objects into a machine word. e.g. 1 bit flags can
be compacted - Symbol tables in compilers.
- Reading external file formats - non-standard file formats could be read in. E.g.
9 bit integers.
C lets us do this in a structure definition by putting :bit length
after the variable. i.e.
Here the packed_struct contains 6 members: Four 1 bit flags f1..f3,
a 4 bit type and a 9 bit funny_int.
C automatically packs the above bit fields together.
Access members as usual via:
pack.type = 7;
NOTE:
- Only
lower bits will be assigned to an
bit number. So type cannot take values larger than 15 (4 bits long).
- Bit fields are always converted to integer type for computation.
- You are allowed to mix ``normal'' types with bit fields.
- The unsigned definition is important - ensures that no bits are
used as a
flag.
Dave.Marshall@cm.cf.ac.uk
Wed Sep 14 10:06:31 BST 1994