【发布时间】:2023-04-08 15:17:01
【问题描述】:
所以我知道 typedef 对于只能由访问器函数操作的不透明结构是可以接受的。
这是在访问器函数中使用自引用的不透明 typedef 结构的适当方式吗?
typedef struct foo {
struct foo *bar;
int member;
} foo1;
foo1 * blah1 = (foo1*) malloc(...);
blah1->bar->member = 999;
替代方案是这样的:
typedef struct {
struct foo* bar;
int member;
}foo;
所以当你做这样的事情时:
foo * blah1 = (foo*) malloc(...);
blah1->bar->member = 999;
你会得到这个错误:
dereferencing pointer to incomplete type
【问题讨论】: