我不確定Printf語句是否會打印Status?,我猜測它是編譯器相關的,任何人都可以解釋這個設置狀態在最後打印的是什麼?C語言編程中的結構和聯合
#include <stdio.h>
#include <string.h>
typedef union {
struct {
unsigned char colour;
struct {
unsigned char contrast :1;
unsigned char density :3;
unsigned char depth :1;
unsigned char brightness :1;
unsigned char saturation :1;
unsigned char channel :1;
} bits;
} XStruct;
unsigned short status;
} XUnion;
void main(void) {
XUnion yunion;
memset(&yunion, 0x00, sizeof(yunion));
yunion.XStruct.contrast = 0xAE;
yunion.XStruct.bits.density = 0x01;
yunion.XStruct.bits.depth = 0x02;
yunion.XStruct.bits.saturation = 0x01;
printf("Status: %d", yunion.status);
}
爲什麼不運行此代碼並親自查看? –
基本?你的意思是它是考試的一部分嗎? –
@sanjeevmk - 因爲運行代碼並查看結果無法告訴您它是否定義良好,實現定義或未定義行爲。 – detly