我正在实现一种将一组数据传输到可编程加密狗的方法。该加密狗基于智能卡技术,可以在内部执行任意代码。输入和输出数据作为二进制块传递,可以通过输入和输出指针访问。
我想使用关联数组来简化数据处理代码。一切都应该这样进行:
首先是主机应用程序:
// 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 的哈希表。 http://library.gnome.org/devel/glib/stable/glib-Hash-Tables.html实现映射接口或(关联数组)。
它很可能是最常用的 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");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)