|
本帖最后由 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; } ; |
微信公众号
手机版
你下面的结构体连个名字也没有啊!闹什么啊
typedef struct {
uint32_t frequency;
pwmcnt_t period;
pwmcallback_t callback;
};
这个明显存在语法错误啊!
sorry,写错了。
应该是
typedef struct {
uint32_t frequency;
pwmcnt_t period;
pwmcallback_t callback;
}PWMConfig;