0
你好我想知道是否有可能存儲一個浮點作爲關鍵入GhashTable考慮到沒有GFLOAT_TO_POINTER宏方法。在GhashTable中存儲float作爲鍵
我正在按照IBM http://www.ibm.com/developerworks/linux/tutorials/l-glib/section5.html在線找到的教程進行操作,但似乎無法找到將float用作鍵的方法。
任何幫助將非常感謝!
typedef struct Settings settings;
typedef struct Preset preset;
struct Gnomeradio_Settings
{
GList *presets;
};
struct Preset
{
gchar *name;
gfloat freq;
};
我希望把所有頻率從settings.presets清單爲重點的GHashTable
GHashTable *hash;
GList *node;
hash = g_hash_table_new (g_double_hash, g_double_equal);
for (node = settings.presets; node; node = node->next) {
preset *ps;
gfloat *f;
ps = (preset *) node->data;
f = g_malloc0 (sizeof (gfloat));
*f = ps->freq;
g_hash_table_insert (hash, f, NULL);
}
void printf_key (gpointer key, gpointer value, gpointer user_data)
{
printf("\t%s\n", (char *) key);
}
void printf_hash_table (GHashTable* hash_table)
{
g_hash_table_foreach (hash_table, printf_key, NULL);
}
printf_hash_table (hash);
但都沒有成功!
本刊:
���B
ff�B
ff�B
���B
ff�B
f��B
f��B
���B
33�B
ff�B
�L�B
���B
�̲B
看到這個[答案](http://stackoverflow.com/questions/25298327/ghashtable-that-using-uint64-t-as-鍵 - 和 - a-結構-AS-值/ 25298461#25298461)。 – 2014-08-27 12:14:55
也請參閱此答案:http://stackoverflow.com/a/6685020/390913 – perreal 2014-08-27 12:29:11