当前位置:编程学习 > C/C++ >>

c语言:#define inport(addr) (*(volatile U32 *)(addr)) 一句是定义什么,其中inport(addr)是一个函数吗

难道是 在定义一个函数的指针,能否拆分的讲解一下,感谢了
追问:(*(volatile U32 *)(addr))   这个是指向指针的指针吗?。。。不能完全理解, 把volatile去掉,(*(U32 *)(addr))当中的(U32 *)(addr)是把addr转换成U32*类型,那在这之前addr应该是被定义成某个类型的变量啊,然后才能被转换,是吗?我看了 不懂才来提问的。我认为addr应该是在之前声明过的变量啊?看我的评论你再来回答吧
答案:inport(addr)不是函数,就是定义的型如inport(addr)的宏,每次用来取得addr指向U32地址中的内容。volatile是防止编译器优化,让编译器每次都重新读取addr的地址值。
其他:楼主回去看看宏再来问吧。。。。 

上一个:c语言中,形参的值不能传递给实参,那如果形参和实参都是指针,形参的值会影响实参吗?
下一个:c语言问题,我的c语言编译器是创天中文vc++版本的,不能用图形函数,请问什么样的编译器可以用图形函数?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,