我有以下typedef。 Pub类型保留两个int,pub_table保留一组publishers和一个int。
typedef pub{
int nodeid;
int tid
};
typedef pub_table{
pub table[TABLE_SIZE];
int last
};
然后在第pt.table[pt.last] = p;
行,我收到错误
"错误:结构参考不完整'表'锯'操作员:='"
if
:: node_type == publisher ->
pub p;
p.nodeid = node_id;
p.tid = topic_id;
pt.last = pt.last + 1;
pt.table[pt.last] = p;
fi
不幸的是我看不出那条线路上的错误了什么?
答案 0 :(得分:2)
错误是因为您无法一次性分配完整的typedef变量。我尝试通过定义局部变量pub p;
来做到这一点,然后在初始化p中的所有字段后,我尝试一次性分配pt.table[pt.last] = p
。我设法解决了这个问题:
pt.table[pt.last].nodeid = node_id;
pt.table[pt.last].tid = topic_id;
REF:
当前的Spin实现对以下内容施加了以下限制 使用typedef对象。无法分配值 一个完整的typedef对象直接指向另一个这样的对象 输入一个作业。