今天看到有位网友提问:
“
单片机中的sizeof的问题
是用KEILC51,单片机型号是AT89S52如下程序:char i,k,*p;i=6 ; p=&i; k=sizeof p;DEBUG观察K的值,是0x03请问这是为什么?32位机指针大小是4,那么8位的单片机就应该是1啊”
在看到这个问题时我也不知道KeilC51下char型指针的长度到底是多少,但肯定不是1。因为如果是1,那寻址空间就只有256,而51单片机的外部数据存储器是可以扩展到地址0xFFFF的。所以,指针变量的长度至少是2字节。另外,这里还要注意,在一个系统中,指针变量的长度跟具体的变量类型是无关的。那么,在KeilC51中指针变量的长度到底是多少呢?是不是像网友说的3个字节呢?
最新评论