COHERENT manpages
This page displays the COHERENT manpage for bit-fields [Definition].
List of available manpages
Index
bit-fields -- Definition A bit-field is a member of a structure or union that is defined to be a cluster of bits. It provides a way to represent data compactly. For example, in the following structure struct example { int member1; long member2; unsigned int member3 :5; } member3 is declared to be a bit-field that consists of five bits. A colon `:' precedes the integral constant that indicates the width, or the number of bits in the bit-field. Also, the bit-field declarator must include a type, which must be one of int, signed int, or unsigned int. A bit-field that is not given a name may not be accessed. Such an object is useful as ``padding'' within an object so that it conforms to a template designed elsewhere. A bit-field that is unnamed and has a length of zero can be used to force adjacent bit-fields into separate objects. For example, in the following structure struct example { int member1; int member2 :5; int :0; int member3 :5; }; the zero-length bit-field forces member2 and member3 to be written into separate objects. Finally, it is illegal to take the address of a bit-field. See Also bit, bit map, byte, Programming COHERENT, ANSI Standard, §3.5.2.1 Notes Because bit-fields have many implementation-specific properties, they are not considered to be highly portable. Bit-fields use minimal amounts of storage, but the amount of computation needed to manipulate and access them may negate this benefit. Bit-fields must be kept in integral-sized objects because many machines cannot directly access a quantity of storage smaller than a ``word'' (a word is generally used to store an int).