g_hash_table_new(HashFunc hash_func, GEqualFunc key_equal_func)
HashFunc他们具有这种类型:
-
g_direct_hash()
-
g_int_hash()
-
g_int64_hash()
-
g_double_hash()
-
g_str_hash()
gequalfunc他们有这种类型:
-
g_direct_equal()
-
g_int_equal()
-
g_int64_equal()
-
g_double_equal()
-
g_str_equal()
我可以使用哪种类型的键,该密钥是我定义的struct的长音和值?
从注释中总结:
假设您为指针至少与长度一样多的系统构建(在大多数系统上(,是的,您可以将其施放到gconstpointer
并使用g_direct_*
。但是,您确实以这种方式依赖于该事实。
否则:请勿使用long
,而是使用gint
或gint64
作为您的值,然后将指针传递给g_int_*
或g_int64_*
。使用long
,每个系统的实际尺寸可能会有所不同,无论如何,在便携式代码中都不方便。
g_direct_*
使用指针本身,而不是它们指向的值。