uthash.h在使用的时候,使用HASH_ADD_STR如何添加hash表项
时间: 2024-03-03 15:47:48 浏览: 304
在使用uthash.h库中的`HASH_ADD_STR`宏时,需要注意以下几点:
1. `HASH_ADD_STR`宏添加的哈希表的key是字符串类型,需要使用`char*`类型。
2. `HASH_ADD_STR`宏添加的哈希表的元素需要指定一个字符串的key,该key是哈希表中的元素的唯一标识符。
以下是一个示例代码,展示如何添加一个字符串类型的key的哈希表项:
```c
#include "uthash.h"
#include <string.h>
// 定义哈希表结构体
typedef struct {
char name[20];
int age;
UT_hash_handle hh;
} User;
int main() {
User *users = NULL; // 哈希表指针
// 添加一个元素到哈希表中
User *user1 = malloc(sizeof(User));
strcpy(user1->name, "Alice");
user1->age = 20;
HASH_ADD_STR(users, name, user1);
// 查找哈希表中的元素
User *result;
HASH_FIND_STR(users, "Alice", result);
if (result) {
printf("Found user: %s, age: %d\n", result->name, result->age);
} else {
printf("User not found\n");
}
return 0;
}
```
在以上示例代码中,我们使用`HASH_ADD_STR`宏添加了一个字符串类型的key的哈希表项。在添加元素时,我们指定了该元素的key为`name`字段。在查找元素时,我们使用`HASH_FIND_STR`宏查找key为`Alice`的元素,并打印出它的`name`和`age`字段。
阅读全文