c - C 中的关联数组

标签 c arrays associative-array dongle

我正在实现一种将一组数据传输到可编程加密狗的方法。该加密狗基于智能卡技术,可以在内部执行任意代码。输入和输出数据作为二进制 block 传递,可以通过输入和输出指针访问。

我想使用关联数组来简化数据处理代码。一切都应该这样进行:

首先是主机应用程序:

// Host application in C++
in_data["method"] = "calc_r";
in_data["id"] = 12;
in_data["loc_a"] = 56.19;
in_data["loc_l"] = 44.02;
processor->send(in_data);

接下来是加密狗内的代码:

// Some dongle function in C
char* method_name = assoc_get_string(in_data, "method");
int id = assoc_get_int(in_data, "id");
float loc_a = assoc_get_float(in_data, "loc_a");
float loc_l = assoc_get_float(in_data, "loc_l");

所以我的问题是关于加密狗部分功能的。是否有 C 代码或库来实现像上面这样的关联数组行为?

最佳答案

Glib's hash table.实现映射接口(interface)或(关联数组)。 它很可能是最常用的 C 哈希表实现。

GHashTable *table=g_hash_table_new(g_str_hash, g_str_equal);

/* put */
g_hash_table_insert(table,"SOME_KEY","SOME_VALUE");

/* get */
gchar *value = (gchar *) g_hash_table_lookup(table,"SOME_KEY");

关于c - C 中的关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32903924/

相关文章:

c - 需要算法方面的帮助(堆栈溢出)

java - 如何将值加载到 JTable 中,以便它在打开表单时显示以前的值?

c - C语言中如何从char数组中获取字符串值

javascript - 将多个键映射到 Javascript 哈希中的相同值

c - 1 个主程序中的 2 个功能(Visual Studio 2013)

c++ - 为什么每次执行时函数的地址都不同?

java - java中通过数组索引数组

php - 查找关联数组中的最后一对

python - 关联矩阵?

c - 我如何利用缓冲区溢出?