我遇到结构问题..
我有以下代码:
typedef struct filaNo{
Range data;
struct filaNo* prox;
}tfilaNo;
typedef struct tfifo {
tfilaNo* inicio;
tfilaNo* final;
} tfifo;
我希望将此列表包含在另一个结构中:
typedef struct
{
int threadId;
double threshold;
double areaCalc;
tfifo intervalos;
}ThreadData;
当我只使用tfifo时它工作得很好,但是当我包含在ThreadData中时,我会收到55个错误(例如:“语法错误:标识符'tfifo'”......)以及其他许多像这样的...似乎是编译器丢失了。
有谁知道如何解决这个问题?
非常感谢!
编辑:更多代码:)
tfifo单独工作很好,我可以这样做:
tfila doc;
Range range;
int a;
create_fifo(&doc);
range.p1.x = 0;
range.p2.x = 33;
range.p1.y = 0;
range.p2.y = 0;
range.area = 0;
insert_fifo (&doc, range);
while(!empty_fifo(doc)){
remove_fifo(&doc,&range);
printf(" %d\n", range.p2.x);
}
现在我想将它包含在ThreadData中,因为我需要每个ThreadData结构的列表。
错误2错误C2059:语法错误:'}'
错误1错误C2061:语法错误:标识符'tfila'
错误18错误C2065:'i':未声明的标识符
但是编译器在此之后完全丢失了......给了我很多不存在的错误......
答案 0 :(得分:1)
这是真正的代码还是拼写错误?
typedef struct tfifo {
tfilaNo* inicio;
tfilaNo* final;
} tfifo;
您对struct和typedef使用相同的名称。也许这就是问题所在。
答案 1 :(得分:0)
在C中,你需要像这样使用
typedef struct struct_name
{
//...
}mytype_t;
修改此
typedef struct give_some_name
{
int threadId;
double threshold;
double areaCalc;
tfifo intervalos;
}ThreadData;
编辑
这里你使用的是同名修改
typedef struct tfifo_t {
tfilaNo* inicio;
tfilaNo* final;
} tfifo;