不知道如何修复我收到的警告

时间:2014-11-13 22:35:19

标签: c struct

我正在尝试通过参数传递结构,我无法修复我收到的警告。我写了一小段独立的代码,产生了我在更大的代码上得到的警告信息。问题似乎是我有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;
}

1 个答案:

答案 0 :(得分:2)

start_thread定义中取出“struct”。您已经将typedef上面的port_t声明为指向指定结构的指针,这就是您似乎要使用的类型。

struct用于定义新结构类型,您已经拥有。