...
| Code Block |
|---|
typedef struct time_day {
unsigned h1 : 2; {0:2}
unsigned h2
unsigned m1
unsigned m2
unsigned s1
unsigned s2
unsigned f1
unsigned f2
unsigned f3
{0:9} {0:5) {0:9) {0:5) {0:9) {0:9} {0:9} {0:9}
} TIME_DAY; /* 32 bits total */
|
...
| Code Block |
|---|
f3 f2 f1 s2 s1 m2 ml h2 h1
|
Most other implementations are "left-to-right":
...
| Code Block |
|---|
#include "time_day.h"
struct time_day last_msec = {2, 3, 5, 9, 5, 9, 9, 9, 9};
/* initializes last_msec to the last millisecond of the day. */
struct time_day now;
/* ... */
if (now.h1 == 0 || (now.h1 == 1 && now.h2 < 2))
|
tests whether now is less than noon.
If we wish to use the TIME_DAY structure for an information-hiding purpose, so that it could be changed without affecting the programs that use it, we should employ the "leading-underscore" convention mentioned earlier in Section 6.2 :
...
The TIME_DAY example illustrates the use of bit-fields nicely, but there are numerous other ways to represent time-of-day.
...