关于头文件里面联合体,结构体的问题,我是菜鸟,一直...
我在看msp430头文件的时候看到很多这样的定义__no_init volatile union
{
unsigned char IFG1; /* Interrupt Flag 1 */
struct
{
unsigned char WDTIFG : 1; /**/
unsigned char OFIFG : 1; /**/
unsigned char : 2;
unsigned char NMIIFG : 1; /**/
}IFG1_bit;
} @0x0002;
enum {
WDTIFG = 0x0001,
OFIFG = 0x0002,
NMIIFG = 0x0010
};
我不明白的是 unsigned char OFIFG : 1; /**/
像这种定义里面的“:”是用来干嘛的?
另外,我如果想要给这个IFG1赋值,我是不是直接写IFG1=WDTIFG+ NMIIFG;就可以了?
觉得头文件里很多东西在C语言里面都没有定义,挺奇怪的。
先谢谢大家! unsigned char OFIFG : 1;
这个是位操作, 即OFFIFG占char中的其中一位
另外,我如果想要给这个IFG1赋值,我是不是直接写IFG1=WDTIFG+ NMIIFG;就可以了?
可以是可以,不过IFG1是个char型,而WDTIFG, NMIIFG都为16位,赋值了也只能把低八位赋给IFG1。 右手执香 发表于 2012-8-23 15:15 static/image/common/back.gif
unsigned char OFIFG : 1;
这个是位操作, 即OFFIFG占char中的其中一位
谢谢你的解答!那么我想知道标准的赋值方法是什么呢? 本帖最后由 mored 于 2012-8-23 18:33 编辑
看错了,不能删,所以编辑一下 另一种赋值方法是:
IFG1_bit.WDTIFG = 1;
IFG1_bit.NMIIFG= 1;
页:
[1]