新手请教一个总线读写的问题

poonhm   2007-4-1 14:45 楼主
#define TYPE_R          (0x30000008)

Type = *(UCHAR *)(TYPE_R)

这个是访问EPLD的读操作,EPLD的数据port宽度定义为了8bit。
我不太明白的是*(UCHAR *)(TYPE_R)的语法代表什么意思,难道不是把地址0x30000008强制转换为只有低8bit有效,然后读出这个8bit地址的值吗?

回复评论 (3)

Type = *(UCHAR *)(TYPE_R);

(UCHAR *)(TYPE_R).把0x30000008转制转换为(UCHAR *),一个无符号字符型的指针常量

然后再把它进行指针运算,取到对象的值,然后赋给Type

点赞  2007-4-1 15:48
(UCHAR *)(TYPE_R).把0x30000008转制转换为(UCHAR *),一个无符号字符型的指针常量
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
                      是不是转换成了0x08了呀?
点赞  2007-4-1 15:57
不是 只是代表从这个地址取了bit8的值
点赞  2007-4-7 13:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复