我在尝试调用函数时遇到问题,我将指针传递给两个结构体。
请有人解释为什么我不能这样做......
// in types.h
typedef struct {
uint16_t size;
uint16_t width;
uint16_t height;
void (*fn_init)(void);
} display_t, *display_ptr;
typedef struct {
uint16_t size;
const display_ptr display;
} context_t, *context_ptr;
// in main.c
void init_context(context_ptr context, const display_ptr display) {
context->size = sizeof(context_t);
context->display = display;
}
const display_t g_display= {
0,
400,
800,
NULL
};
context_t g_context;
void main(void) {
// other code here...
init_context(&g_context, &g_display);
}
当我调用init_context函数时,出现以下错误:
"argument of type "display_t const *" is incompatible with parameter of type struct <unnamed> *"
但是,如果我将init_context的声明更改为如下:
void init_context(context_ptr context, const display_t *display);
有效!
我缺少什么或不理解?
提前致谢! 千电子伏