gpt4 book ai didi

c++ - GLib HashTable 将函数作为参数传递

转载 作者:行者123 更新时间:2023-11-30 17:12:27 25 4
gpt4 key购买 nike

我正在学习GLib GHashTable源代码。您可以从此处的链接查看源代码。

https://github.com/GNOME/glib/blob/master/glib/ghash.c

https://github.com/GNOME/glib/blob/master/glib/ghash.h

GHashTable *g_hash_table_new (GHashFunc  hash_func,
GEqualFunc key_equal_func)

g_hash_table_new 函数在此处创建基本哈希表。我的问题是参数。前两个参数“GHashFunc hash_func, GEqualFunc key_equal_func”将传递给该函数。

ghash.h中,没有hash_func和key_equal_func,它们只是符号。它们将被真正的哈希函数取代。这里两个函数怎么变成参数了?

我知道 ghash.h 文件中有一些哈希函数,例如:

guint g_int_hash (gconstpointer v) 
guint g_str_hash (gconstpointer v)

这些函数将在运行时传递给“g_hash_table_new”以替换“hash_func”和“key_equal_func”。但我不知道那是什么技术?如何将一个函数作为参数传递给另一个函数并在运行时替换它。

谢谢

最佳答案

你传递的参数是一个点,你定义哈希计算函数。所有的函数过程都是回调函数。哈希表只需将参数传递给您的 equel 函数。

关于c++ - GLib HashTable 将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31530206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com