GValue initialization/finalization 必要性

GValue initialization/finalization necessity

我应该什么时候打电话给g_value_init/g_value_reset

目前,我在所有情况下都使用 g_value_initg_value_reset,但我想知道是否可以加快速度。

我至少知道:

这就是我目前的全部研究。我想扩大它,可能得到官方文档参考的支持。提前致谢。

我对这个话题了解不多,但我用谷歌搜索 g_value_init,发现 GNOME 开发人员的这些页面可能有用:

https://developer.gnome.org/gobject/stable/gobject-Generic-values.html#g-value-reset

https://developer.gnome.org/glib/stable/glib-Basic-Types.html#gboolean

看看有没有帮助

你目前的想法大部分是正确的。 g_value_init() 必须始终用于初始化堆栈分配的 GValueg_value_unset() 必须在 GValue 超出范围时使用,以释放任何特定于类型的数据。如果您想将 GValue 重置为默认值,则应使用 g_value_reset() — 请注意,对于某些类型,这可能意味着它仍指向已分配的内存。

g_value_unset() 通常比 g_value_reset().

使用得更频繁