>>436
#pragma pack(push, 1)
typedef union {
 DWORD RGBA;
 DWORD Gray;
 DWORD Bin;
 struct {
  BYTE R, G, B, A;
 };
} PIXEL;
#pragma pack(pop)
#define PIXEL_RGBA(r, g, b, a) {( (a << 24) | (b << 16) | (g << 8) | (r) )}

PIXEL pix = PIXEL_RGBA(1, 2, 3, 4);

こうしちゃだめなん?