错误:参数'DelNode\u 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);


    }

最佳答案

你打错了字:

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);
}

关于c - C中的错误不完整类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5867316/

10-14 15:43
查看更多