このキャストのようなものは合法だと思います(fooはvoidへのポインタです):
struct on_off {
unsigned light : 1;
unsigned toaster : 1;
int count; /* 4 bytes */
unsigned ac : 4;
unsigned : 4;
unsigned clock : 1;
unsigned : 0;
unsigned flag : 1;
};
((on_off) foo).count = 3;
しかし、このようなものが合法であるかどうか、構造体が定義されていないかどうか疑問に思っています:
((struct {
unsigned light : 1;
unsigned toaster : 1;
int count; /* 4 bytes */
unsigned ac : 4;
unsigned : 4;
unsigned clock : 1;
unsigned : 0;
unsigned flag : 1;
}) foo).count = 3;
...またはこれらの線に沿った何か。
ありがとう!