原创 【软件】#define和sbit的区别

2011-3-7 14:50 5629 16 17 分类: MCU/ 嵌入式

————————————————————————————————————————————————

#defined P01 P0^1

sbit P01=P0^1;  

#define的用处参考大量的C语言基础资料。对应的P01仅仅是预编译期的文本替换效果,实际运行时堆栈中不存在P01这个东西。

sbit是变量类型,对应的P01是一个变量,实际运行时堆栈中已经分配了对应的空间。

————————————————————————————————————————————————

#define P01 (P0^1)
P01=0;//error C213: left side of asn-op not an lvalue
使用:
sbit P01=(P0^1);
P01=0;//OK

————————————————————————————————————————————————

#define s1 P2^0
与sbit s1=P2^0;
的区别,s1为按键,从效果来看上面那个按键闭合时,单片机无法识别

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-6-1 09:57

这个问题我困惑好久了

相关推荐阅读
FunKing 2020-02-02 16:21
【兆易创新RISC-V开发板评测】兆易创新GD32VF103V-EVAL全功能开发板
在19年9月的时候看到老师发了消息说第二届CCC(Chisel Community Conference)要在学校举办,想着也挺久没有回学校了,就报名参加了。会议办的非常棒,虽然主要是介绍chisel...
FunKing 2011-03-08 15:30
【求助】Cypress中Slave FIFO固件的例子
1.那位有EZ-USB FX2LP(CY7C68013A)芯片的Slave FIFO方式工作的固件,项目中用到,想看一个做参考。2.选择Slave FIFO可以用Cypress的CYUSB.sys做驱...
FunKing 2011-03-08 13:52
【vim】vim常用命令
|02.1| 第一次运行 Vim |02.2| 插入文本 |02.3| 移动光标 |02.4| 删除字符 |02.5| 撤销与重做 |02.6| 其它编辑命令 |02.7| ...
FunKing 2011-03-08 11:08
【USB】hex to iic
在cypress开发包的安装目录下有一个工具 Cypress\USB\Bin\Hex2Bix.exe,并且在Util目录下有他的源代码。你可以用这个工具进行hex到iic文件的转换。 把要...
FunKing 2011-03-07 14:59
【软件】volatile的作用
volatile的作用一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值...
FunKing 2011-03-07 14:58
【软件】ARM汇编伪指令 .word
ARM汇编伪指令 .word经常碰到那些以“.”打头的一些令人头疼的伪指令,至于.globl _start .balign .align .data .text等等就算了,最最bt的如下:_undef...
我要评论
1
16
关闭 站长推荐上一条 /3 下一条