| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:c语言指针问题--着急。
只看楼主 加入收藏
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
结帖率:80%
收藏
 问题点数:0 回复次数:8 
c语言指针问题--着急。
#define ICU_BASE  0x00001010
#define ICGU     *((volatile uint *) (ICU_BASE + 0x0480)) //谁能给解释一下这句。
本人菜鸟。。。
搜索更多相关主题的帖子: 指针 c语言 
2010-12-03 16:09
xiaozhao986
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2010-11-30
收藏
得分:0 
两个都是宏定义,第二句的宏定义是一个指针嵌套吧
2010-12-03 16:17
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
收藏
得分:0 

*((volatile uint *) (0x00001010 + 0x0480) 最终指向哪里?

2010-12-03 16:20
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
收藏
得分:0 
*((volatile uint *) 是什么意思?
2010-12-03 16:22
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
以下是引用avator123在2010-12-3 16:09:35的发言:

#define ICU_BASE  0x00001010
#define ICGU     *((volatile uint *) (ICU_BASE + 0x0480)) //谁能给解释一下这句。


这个 #define 完成程序代码中字符串代换的定义
这里,定义 ICGU 代替 *((volatile uint *) (ICU_BASE + 0x0480))

另外 #define 是预编译命令,也就是在编译之前完成的代换,可能定义的时候看到的含义和实际执行的是不同的
举个例子
程序代码:
#define A  x+y 
main()
{
   int x,y;
   int z;
   x = 1; y = 2;
   z = x * A * y;    
   printf("z = %d",z);   
}


在上面这个例子中,楼主觉得输出的z应该是多少呢?你觉得z = 1 * (1 + 2) * 2 = 6 吗?
可是实际执行的时候,z = 1 * 1 + 2 * 2 =5 , 你可以试验一下

以上这个例子说明,定义的宏,在执行的时候,并不是被按照一个整体处理的,所以,

#define X  Y 的含义是 在编译之前,将程序中的 X 代换成 Y ,具体的含义,需要结合引用语句进行解释

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-12-03 20:26
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:0 
楼主,不是问过了? 我觉得那个人会打得不错啊....
2010-12-03 20:41
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
*((volatile uint *) (ICU_BASE + 0x0480)) //这句的意思是把宏ICU_BASE + 0x0480的值(编译器优化为int型)强制转换为不会被编译器优化无符号int型的常指针
//由于该指针是指向单个数据单位的指针,所以是获得了以ICU_BASE + 0x0480这个内存地址开始的4个字节的内容,并解析为unsigned int 型

My life is brilliant
2010-12-04 00:32
ququguoguo
Rank: 2
等 级:论坛游民
帖 子:73
专家分:90
注 册:2010-10-20
收藏
得分:0 
我是来学习的
2010-12-04 01:00
ququguoguo
Rank: 2
等 级:论坛游民
帖 子:73
专家分:90
注 册:2010-10-20
收藏
得分:0 
我是来学习的
2010-12-04 01:02
快速回复:c语言指针问题--着急。
数据加载中...
 
   



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

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