我不确定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