我有一个函数,当使用 gcc 编译时工作正常,但是当我使用 g++ 编译它时,它给了我这个错误:
bon_io.cpp:In function 'lruc_item* lruc_pop_or_create_item(lruc*)': bon_io.cpp:4751: error: invalid conversion from 'void*' to 'lruc_item*'</p>
代码:
typedef struct {
void *value;
void *key;
uint32_t value_length;
uint32_t key_length;
uint64_t access_count;
void *next;
} lruc_item;
lruc_item* lruc_pop_or_create_item(lruc *cache1)
{
lruc_item *item = NULL;
if(cache1->free_items) {
item = cache1->free_items;
cache1->free_items = item->next; [LINE 4751]
} else {
item = (lruc_item *) calloc(sizeof(lruc_item), 1);
}
return item;
}
我正在尝试将此函数与 c++ 代码一起使用,这就是为什么需要使用 g++ 编译它的原因,如果我使用 gcc 而不是使用 g++ 编译它,它可以正常工作。
任何人都可以建议我使用 g++ 完成这项工作吗?
谢谢