我在 .h 文件中对结构进行了前向声明,并在 .c 文件中对同一结构进行了完整声明。我想访问它的成员,但我得到了
成员访问不完整类型结构体通道
这是我的代码
动词.h
struct channel;
动词.c
struct channel{
int index=10;
};
main.cpp
#include "verbs.h"
...
struct channel* ch;
...
ch->index;
verbs.h 和 verbs.c 是遗留代码,所以我无法更改它们
有办法解决这个问题吗?
您可以在
verbs.c
中创建访问器函数,这将允许您间接与结构体通道成员交互。只需在 verb.c
中创建一个函数(并在 'verb.h
中添加其声明)
int get_channel_index(struct channel* ch) {
return ch->index;
}
并在
main.cpp
中访问它,例如:
struct channel* ch;
int index = get_channel_index(ch);