2

我在结构方面遇到了一些麻烦..

我有以下代码:

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':未声明的标识符

但是编译器在此之后完全迷失了......给了我这么多不存在的错误......

4

2 回答 2

1

这是真正的代码还是错字?

typedef struct tfifo {        
 tfilaNo* inicio;   
 tfilaNo* final;       

} tfifo;

您对结构和 typedef 使用相同的名称。也许这就是问题所在。

于 2013-09-24T19:42:45.510 回答
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;  
于 2013-09-24T19:32:38.423 回答