前向声明结构成员访问

问题描述 投票:0回答:1

我在 .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 是遗留代码,所以我无法更改它们

有办法解决这个问题吗?

c++ c struct definition
1个回答
0
投票

您可以在

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);
© www.soinside.com 2019 - 2024. All rights reserved.