C中的错误不完整类型

时间:2011-05-03 09:02:57

标签: c

错误:参数`DelNode_ptr'的类型不完整

为什么我得到这个错误,每件事都是正确的,这里pktFltr包含ip,udp和tcp的结构。

    struct classifier
    {
        int clsf_count;
        int key_node;
        struct packet_filter pktFltr;
        struct classifier *next;
    }__attribute__((packed));


    void delete_rules(struct classifier keys)
    {
        int key;
        key = 822;
        keys.key_node = 822;
        inet_aton("172.28.6.137", &(keys.pktFltr.ip.ip_src));
        inet_aton("172.28.6.110",&(keys.pktFltr.ip.ip_dst));
        keys.pktFltr.protocol.proto.uh_sport = ntohs(1032);
        keys.pktFltr.protocol.proto.uh_dport = ntohs(5000);
        DelNode(key,keys);
    }


    void DelNode(int key, struct classifer DelNode_ptr)
    {
    ..........
    .........
    }

    main()
    {
     struct classifier keys;
     delete_rules(keys);


    }

1 个答案:

答案 0 :(得分:5)

你写了一个错字:

void DelNode(int key, struct classifer DelNode_ptr)

应该是

void DelNode(int key, struct classifier DelNode_ptr)

除此之外,您很可能希望在函数中传递指向结构的指针:

void delete_rules(struct classifier *keys)
{
    int key;
    key = 822;
    keys->key_node = 822;
    inet_aton("172.28.6.137", &(keys->pktFltr.ip.ip_src));
    inet_aton("172.28.6.110",&(keys->pktFltr.ip.ip_dst));
    keys->pktFltr.protocol.proto.uh_sport = ntohs(1032);
    keys->pktFltr.protocol.proto.uh_dport = ntohs(5000);
    DelNode(key, keys);
}


void DelNode(int key, struct classifier *DelNode_ptr)
{
    // ...
}

main()
{
    struct classifier keys;
    delete_rules(&keys);
}