| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 778 人关注过本帖
标题:难理解的两句(求助)
只看楼主 加入收藏
duan1234
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
难理解的两句(求助)
大家好,我在资料上看到下面两句,不知道怎么理解,请教一下:
#define Data_Port           *((unsigned char xdata *)0x4000)
请教一下这句是定义指针么?还是其他什么类型。
#define Begin_Cluster           (0)
这句定义的(0)和0有区别么?
谢谢!
搜索更多相关主题的帖子: 资料 
2010-07-18 14:11
malpower
Rank: 1
等 级:新手上路
帖 子:26
专家分:9
注 册:2010-7-2
收藏
得分:4 
第一句是定义了一个只向某结构体0x400位置的指针。
2010-07-18 15:06
yjchaos
Rank: 2
等 级:论坛游民
帖 子:16
专家分:36
注 册:2010-7-4
收藏
得分:4 
总之,在函数中碰到Data_Port就用*((unsigned char xdata *)0x4000)去代替,碰到Begin_Cluster就用(0)去代替
2010-07-18 16:57
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:4 
同意楼上的观点

南国利剑
2010-07-18 17:04
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:4 
对的同意楼上的楼上的观点

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-18 17:15
lernllyy
Rank: 1
等 级:新手上路
帖 子:11
专家分:9
注 册:2010-7-18
收藏
得分:4 
请看:
*100=25;
大家认为上面这个表达式对么?明显不对了,因为字面值100的类型是整型,而间接访问操作符(*)只能作用于指针类型表达式。

而我们想把一个整型值25放在位置100这个地方上,所以我们必须使用强制类型转换。

变成以下形式

*(int*)100=25
2010-07-18 18:22
lernllyy
Rank: 1
等 级:新手上路
帖 子:11
专家分:9
注 册:2010-7-18
收藏
得分:0 
大家想想*p=25;中的p是指针类型,而*只能作用于指针类型,所以在上面,我们就要把整型存在这个位置上,所以要把100类型转换呀,补充下
2010-07-18 18:26
快速回复:难理解的两句(求助)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045852 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved