你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

结构体定义的方法之结构体之间相互包含

[复制链接]
fury-roar 发布时间:2016-12-30 17:10
本帖最后由 fury-roar 于 2016-12-31 15:04 编辑

在定义若干结构体时,可能会出现以下情况,即结构体之间相互包含:
typedef void (*pwmcallback_t)(PWMDriver *pwmp, void *arg);
typedef struct {
  uint32_t                  frequency;
  pwmcnt_t               period;
  pwmcallback_t        callback;
} PWMConfig;
typedef struct  {
  pwmstate_t                state;
  const PWMConfig       *config;
  pwmcnt_t                   period;
} PWMDriver;

如果按照上述顺序定义结构体的话,编译出现错误。
现使用下面正确的方法:
typedef struct PWMDriver PWMDriver;
typedef void (*pwmcallback_t)(PWMDriver *pwmp, void *arg);
typedef struct  {
  uint32_t                  frequency;
  pwmcnt_t               period;
  pwmcallback_t        callback;
} PWMConfig;
struct PWMDriver {
  pwmstate_t                state;
  const PWMConfig       *config;
  pwmcnt_t                   period;
} ;




收藏 1 评论17 发布时间:2016-12-30 17:10

举报

17个回答
peter001 回答时间:2016-12-30 17:50:57
这个要学一下
moyanming2013 回答时间:2016-12-30 22:42:18
没看出来谁相互包含?
你下面的结构体连个名字也没有啊!闹什么啊
  1. typedef struct {
  2.   uint32_t                  frequency;
  3.   pwmcnt_t               period;
  4.   pwmcallback_t        callback;
  5. };
复制代码
五哥1 回答时间:2016-12-30 23:52:04
认真学习中
shuolang126 回答时间:2016-12-31 08:02:13
有问题吧?
typedef struct  {
  uint32_t                  frequency;
  pwmcnt_t               period;
  pwmcallback_t        callback;
};
这个明显存在语法错误啊!
ts2000 回答时间:2016-12-31 08:15:13
进来学习一下
yhyeefocus 回答时间:2016-12-31 08:30:08
占位               
黑皮男 回答时间:2016-12-31 08:55:39
学习学习
海迹天涯 回答时间:2016-12-31 11:12:19
给你顶起
fury-roar 回答时间:2016-12-31 14:59:27
moyanming2013 发表于 2016-12-30 22:42
没看出来谁相互包含?
你下面的结构体连个名字也没有啊!闹什么啊

sorry,写错了。
应该是
typedef struct {
  uint32_t                  frequency;
  pwmcnt_t               period;
  pwmcallback_t        callback;
}PWMConfig;
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版