我正在尝试通过参数传递结构,我无法修复我收到的警告。我写了一小段独立的代码,产生了我在更大的代码上得到的警告信息。问题似乎是我有start_thread的错误参数。我该怎么做才能修复它们?
这是我得到的三个警告。
'struct port_t'在参数列表中声明[默认启用]
它的范围只是这个定义或声明,可能是 不是你想要的[默认启用]
从不兼容的指针类型传递'start_thread'的参数2 [默认启用]
这是代码
#include <stdio.h>
#include <stdlib.h>
#define N 10
typedef struct {
int port[N];
int id;
} port_t;
void createPort(port_t *temp, int id)
{
temp->port[0] = 0;
temp->port[1] = 1;
temp->port[2] = 2;
temp->port[3] = 3;
temp->port[4] = 4;
temp->port[5] = 5;
temp->port[6] = 6;
temp->port[7] = 7;
temp->port[8] = 8;
temp->port[9] = 9;
temp->id = id;
}
void send(port_t temp)
{
}
void start_thread(void *function, struct port_t *port)
{
printf("In main: creating thread\n");
}
int main(void) {
port_t id[100];
int x;
for(x =0; x < 100; x++)
{
createPort(&id[x], x);
}
start_thread(send, &id[0]);
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;
}
答案 0 :(得分:2)
从start_thread
定义中取出“struct”。您已经将typedef
上面的port_t
声明为指向指定结构的指针,这就是您似乎要使用的类型。
struct
用于定义新结构类型,您已经拥有。