mochan 发表于 2011-4-28 10:09:17

#define的问题 高手进

.....
typedef union
{
    BYTE byte;      
    struct {
    unsigned char B0   :1;
    unsigned char B1   :1;         
    unsigned char B2   :1;         
    unsigned char B3   :1;         
    unsigned char B4   :1;         
    unsigned char B5   :1;         
    unsigned char B6   :1;         
    unsigned char B7   :1;         
            }BIT;
}MYFLAG;

extern sreg volatile MYFLAG g_tag_flag;

#define    FLAG0      g_tag_flag.BIT.B0
#define    FLAG1      g_tag_flag.BIT.B1
#define    FLAG3      g_tag_flag.BIT.B2
#define    FLAG4      g_tag_flag.BIT.B3

if(a < b)
{
    FLAG0 = 1;
}

....


这样会有问题吗? FLAG0会被置1吗??
请高手详解,多谢了

ssclark 发表于 2011-4-28 10:31:37

回复【楼主位】mochan
----------------------------------------------------------------------

可以啊

JSXA 发表于 2011-4-28 11:41:35

应该可以!

l503iu 发表于 2011-4-28 12:29:55

做个实验比谁讲的都清楚
页: [1]
查看完整版本: #define的问题 高手进