把0这个常量做个强制类型转换。转为一个指针。不然,只一个0编译器只会认为他是个常量,你要用这个0地址,你只有显示的告诉编译器,这里这个0我是当地址用,而不是个常量。
1、unsigned char 是无符号字符型volatile 易变,易失的volatile unsigned char i;意思是定义一个无符号字符型的变量 i。2、这个变量存放在内存中,要用的时候需要从内存中取出。3、一般的逻辑是“准备用变量---去对应的内存地址取变量---用变量”,而现在编译器编介入后,就把i 的值放在R寄...
我看到过其他的C编程,通常是这么用的: *(unsigned char volatile xdata *)(0x3000)=0xFF这类的方式来进行对外部绝对地址的字节访问。其实XBYTE就相当于一个指向外部数据区的无符号字符型变量的指针(的名称,且当前的指针指向外部RAM的0地址),而在C里面指针一般和数组是可以混用的。可以直接用XBYTE[0xnnnn]或*(X...
这个宏可以当做一个常量用,也可以当做一个数组 常量就不用说了,直接赋值就好,赋值给谁,谁就是这个数组的首地址,然后这个变量(应该也是无符号字符指针类型的)也就可以当做数组使用了 取值的时候,应该是取硬件寄存器或者管脚的值 这种定义不太可能出现在PC开发中,应该是单片机中的吧?CPU系统指定了...
code unsigned char 表示要把数据放在程序存储区ROM里面,而且不会被改变;(比如数码管显示表那些)volatile unsigned char 则是声明一个无符号volatile型字符变量,volatile变量每次用到时直接从这个变量的地址中读数据,不会被编译器优化。
已经存在定义”#defineps((unsignedcharvolatilexdata*)0)”,你希望片外RAM的24的值并存入变量x,你应该写的语句是:()A. ps x=ps[24]; B. x=ps[0x24]; C. x=ps[24]; D. x=0x24; 如何将EXCEL生成题库手机刷题 相关题库:单片机原理及应用题库 > 手机使用 分享 复制链接 新浪微博 分享QQ...
#define XBYTE ((unsigned char volatile xdata *) 0) 定义 XBYTE 为 指向 xdata 地址空间unsigned char 数据类型的指针,指针值为0 这样,可以直接用XBYTE[0xnnnn]或*(XBYTE+0xnnnn)访问外部RAM了。 单片机2009-03-08 上传大小:3KB 所需:50积分/C币 ...
已经存在定义”#defineps((unsignedcharvolatilexdata*)0)”,你希望片外RAM的234H的值并存入变量x中,你应该写的语句是:() A. ps x=ps[234]; B. x=ps[0x234]; C. x=ps[234]; D. x=0x48; 相关知识点: 试题来源: 解析 B.x=ps[0x234]; ...
对于(volatile unsigned char *)0x20我们再分析一下,它是由两部分组成: 1)(unsigned char *)0x20,0x20只是个值,前面加(unsigned char *)表示0x20是个地址,而且这个地址类型是unsigned char ,意思是说读写这个地址时,要写进unsigned char 的值,读出也是unsigned char。
xdata是large存储类型,volatile是通过硬件来改变指针指向的内容。 define XBYTE unsigned char volatile xdata 0 定义 XBYTE 为 指向 xdata 地址空间unsigned char 数据类型的指针,指针值为0 这样,可以直接用XBYTE 0xnnnn 或 XBYTE 0xnnnn 访问外部RAM了。 至于 volatile的作用就是让编译器不至于优化掉它的操作: vola...