[问题]C/C++程式指标应用问题

楼主: puddingDD (布丁弟弟)   2012-09-06 23:14:25
小弟是社会新鲜人
上班之后才发现程式的不足
特别是指标的应用,我所知道的指标只停留在 基本的指标概念
#define output(port,value) *((volatile unsigned int *)(port))=(value)
1.我的解读是:定义一个函式, 输入参数为port及value,函式内容为把value的值存入port
变量中,这样解读对吗?
2.我已经被*及括号搞的不知道怎么回事,可以解释一下此定义中用的括号及*的来龙去脉
吗?
3.求学阶段常用程式模拟系统,所以程式的循环 判别 变量宣告 副程式 运算 都没有问题
,唯独没接触到指标,是否可以推荐一本指标进阶易懂的书,给小弟我学习?
非常感谢大大们的帮助!!
作者: jackace (inevitable......)   2012-01-04 10:15:00
我觉得应该先把define跟定义函式的不同搞清楚
作者: CindyLinz (Cindy Wang)   2012-09-06 23:40:00
第一个 * 是“取值”, 第二个 * 是描述 type 的一部分
楼主: puddingDD (布丁弟弟)   2012-09-06 23:52:00
*(volatile unsigned int *port)=value 这样写可以吗?(volatile unsigned int *)及(port)和(value)的括号都是必要的吗?
作者: james732 (好人超)   2012-09-07 09:26:00
我很想回复但觉得你问错板了XDDD
作者: tomnelson   2012-09-08 00:57:00
他是问错板了,该去C/C++板问...
楼主: puddingDD (布丁弟弟)   2012-09-08 00:57:00
谢谢回答~我已经懂了!!
作者: tomnelson   2012-09-08 00:58:00
这就是memory-mapped I/O的port output方式用C语言写,这在一些底层程式(driver/firmware...)中常看到.
作者: jaiyalas (银河铁道囧囧囧)   2012-09-10 18:24:00
一楼的帐号真是有够眼熟XD
作者: godfat (godfat 真常)   2012-09-11 03:17:00
楼上想把欢乐带来这里吗? XD
作者: jaiyalas (银河铁道囧囧囧)   2012-09-11 13:15:00
为什么不? XD
作者: godfat (godfat 真常)   2012-09-12 01:07:00
没有不,只是觉得好像有难度而已 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com