您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> struct中的struct?

struct中的struct?

来源:网络整理     时间:2016/7/18 2:54:17     关键词:

关于网友提出的“ struct中的struct?”问题疑问,本网通过在网上对“ struct中的struct?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: struct中的struct?
描述:

/* PWM TIMER (see manual chapter 10) */
struct s3c24x0_timer {
u32 TCNTB;
u32 TCMPB;
u32 TCNTO;
};
struct s3c24x0_timers {
u32 TCFG0;
u32 TCFG1;
u32 TCON;
struct s3c24x0_timer ch[4];
u32 TCNTB4;
u32 TCNTO4;
};
struct s3c24x0_timers *timers = s3c24x0_get_base_timers();
writel(0x0f00, &timers->TCFG0);
看不太懂?
请问ch[4]是什么意思,是指s3c24x0_timer结构有4组吗?
我要用TCMPB地址
writel(0x0f00, &timers->ch[0].TCMPB);这样好像不对的?谢谢高手


解决方案1:


writel(0x0f00, &( (timers->ch[0]).TCMPB ) );

用.啊,因为ch[4]是struct s3c24x0_timer型数组,而不是struct s3c24x0_timer型指针,引用成员当然是用.运算符。
还有,复杂的运算涉及到运算顺序的时候最好用(),极明显又不容易出错!  解决方案2:

ch[0]又不是指针,你当然用.而不是->

解决方案3:

本帖最后由 thefirstz 于 2011-02-27 16:00:19 编辑

请问ch[4]是什么意思,是指s3c24x0_timer结构有4组吗?
是的,表示有4个该结构体类型的变量,即一个数组
writel(0x0f00, &timers->ch[0].TCMPB);这样好像不对的?
加点括号,明确下意思:&(timers->ch[0]).TCMPB
以上介绍了“ struct中的struct?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2760564.html

相关图片

相关文章