关于C程序的一个小问题

时间:2022-08-10 17:36:23
typedef struct _DRAWSTYLE
{
    U16 component : 5; //DRAWCOMPONENT component;
    U16 u16Index : 11; //U16     u16Index;
} DRAWSTYLE;

帮分析一下这段程序,是不是把16位的DRAWSTYLE分成两个部分!

5 个解决方案

#1



struct device{
     unsigned bit0:5;
     unsigned bit1:11;
};

是一般的位域写法,楼主的应该可以。。

#2


作用未知

#3


应该是的。为了方便移植,使用了自己定义的类型

#4


VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

#5


位域结构体

#1



struct device{
     unsigned bit0:5;
     unsigned bit1:11;
};

是一般的位域写法,楼主的应该可以。。

#2


作用未知

#3


应该是的。为了方便移植,使用了自己定义的类型

#4


VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

#5


位域结构体