错误:参数`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);
}
答案 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);
}