函数rte_hash_lookup_data()
的第三个参数void **data
,是一个指向指针的指针。它用来返回查询结果中key所对应的数据。
当调用rte_hash_lookup_data()
函数时,如果查询成功,该函数会将key对应的数据赋值给*data
(即data
所指向的内存单元)。这里需要注意一点,由于是通过传入一个指向指针的指针进行操作,因此在使用前必须要先初始化该指针变量,例如:
void *data = NULL;
int ret = rte_hash_lookup_data(h, &key, &data);
if (ret == 0 && data != NULL) {
// 查询成功
// 此时可以通过 *(uint32_t *)data 来获取key对应的数据了
}
在上述示例代码中,我们首先将指针变量data
初始化为NULL,在调用查询函数后根据返回值来判断查询是否成功,并且确保返回的结果不为空。如果查询成功,则可以通过强制类型转换 *(uint32_t *)data
来获取到key对应的数据了。