1 GQuark概念
Quark:字符串和数字之间建立一一对应的联系。通过Quark定义的数字就可以检索出字符串,或者通过字符串就可以找到Quark定义的数字。
typedef guint32 GQuark;
/*1.创建quark*/
GQuark g_quark_from_string (const gchar *string); /*创建一个字符串拷贝*/
GQuark g_quark_from_static_string (const gchar *string); /*使用原字符串地址*/
/*2.用quark获得字符串*/
const gchar *g_quark_to_string (GQuark quark);
/*3.从字符串获得GQuark*/
GQuark g_quark_try_string (const gchar *string);
2 代码
#include <glib.h>
int
main(int argc, char *argv[]){
GQuark quark;
const gchar *name = "EryangLi";
gint32 flag = 0;
quark = g_quark_from_static_string(name);
g_print("%s has been Quark %d\n",name, quark);
g_print("%s pointer %p\n%s Quark pointer %p\n", name, name, name, g_quark_to_string(quark));
flag = g_quark_try_string(name);
g_print("flag = %d\n", flag);
return 0;
}

GQuark原理与应用
本文介绍了GQuark,一种在Glib库中用于高效字符串标识的方法。通过GQuark,可以将字符串与32位整数进行映射,便于快速检索。在代码示例中展示了如何创建、获取和尝试转换Quark,以及其在内存管理中的优势。
832

被折叠的 条评论
为什么被折叠?



