3050311118 发表于 2012-7-31 12:02:51

uchar bdata flag=0; sbit FF=flag^0; 和bit FF=0;两种定义哪种好?

uchar bdata flag=0;
sbit FF=flag^0;和
bit FF=0;两种定义有何具体区别

用哪种好

raxb 发表于 2012-7-31 12:36:00

都一样吧

3050311118 发表于 2012-7-31 12:37:43

raxb 发表于 2012-7-31 12:36 static/image/common/back.gif
都一样吧

他们的地址分配呢? 现在程序写的标志位都不够用了,多定义一个标志位程序就出乱

raxb 发表于 2012-7-31 12:50:58

3050311118 发表于 2012-7-31 12:37 static/image/common/back.gif
他们的地址分配呢? 现在程序写的标志位都不够用了,多定义一个标志位程序就出乱 ...

第一个是人为指定的,第二个是自动分配的吧

dadatou 发表于 2012-7-31 12:59:06

相同点:把它当成一个位变量使用时,全相同。
不同点:
1.第一种占用一个字节;第二种占用一位.
2.第一种是先由编译器在可位寻址的空间里分配一个字节,然后变量FF占用该字节的第0位;第二种是由编译器直接在可位寻址的空间里分配一个位。
3.第一种还可以定义flag中的其他位,使用类似于C语言的位域;第二种仅仅是一个位变量。

3050311118 发表于 2012-7-31 12:59:12

raxb 发表于 2012-7-31 12:50 static/image/common/back.gif
第一个是人为指定的,第二个是自动分配的吧

他们的地址都是在
20---2F吗

y574924080 发表于 2012-7-31 13:06:43

dadatou 发表于 2012-7-31 12:59 static/image/common/back.gif
相同点:把它当成一个位变量使用时,全相同。
不同点:
1.第一种占用一个字节;第二种占用一位.


第一种还可以是可位寻址的特殊功能寄存器啊,不一定在位段

y574924080 发表于 2012-7-31 13:07:29

3050311118 发表于 2012-7-31 12:59 static/image/common/back.gif
他们的地址都是在
20---2F吗

你想想

sbit LED = P1^0;

dadatou 发表于 2012-7-31 13:12:47

y574924080 发表于 2012-7-31 13:06 static/image/common/back.gif
第一种还可以是可位寻址的特殊功能寄存器啊,不一定在位段

uchar bdata flag=0
这个不可能会到特殊功能寄存器里面去的,不然程序还不乱套啊?

y574924080 发表于 2012-7-31 13:19:34

dadatou 发表于 2012-7-31 13:12 static/image/common/back.gif
uchar bdata flag=0
这个不可能会到特殊功能寄存器里面去的,不然程序还不乱套啊? ...

额,我理解错了

{:sweat:}

我理解为比较bit 和 sbit 的区别了
页: [1]
查看完整版本: uchar bdata flag=0; sbit FF=flag^0; 和bit FF=0;两种定义哪种好?