结构

GObjectParamSpecTypeInfo

描述 [源代码]

struct GParamSpecTypeInfo {
  guint16 instance_size;
  guint16 n_preallocs;
  void (* instance_init) (
    GParamSpec* pspec
  );
  GType value_type;
  void (* finalize) (
    GParamSpec* pspec
  );
  void (* value_set_default) (
    GParamSpec* pspec,
    GValue* value
  );
  gboolean (* value_validate) (
    GParamSpec* pspec,
    GValue* value
  );
  gint (* values_cmp) (
    GParamSpec* pspec,
    const GValue* value1,
    const GValue* value2
  );
}

此结构用于为类型系统提供初始化和销毁参数的类及其实例所需的信息。

已初始化的结构传递给 g_param_type_register_static()。类型系统将对该结构执行深度复制,因此其内存不需要跨 g_param_type_register_static() 的调用保持持久性。

结构成员
instance_size

实例(对象)结构的大小。

n_preallocs

在 GLib 2.10 之前,它指定要预先分配(缓存)的实例数,以保留内存(0 表示不缓存)。自 GLib 2.10 以来,此值被忽略,因为现在使用 [slice 分配器][glib-Memory-Slices] 分配实例。

instance_init

实例初始化函数的位置(可选)。

value_type

符合此 GParamSpec 的值的 GType

finalize

实例终结函数(可选)。

value_set_default

value 重置为 pspec 的默认值(推荐,默认值为 g_value_reset()),请参阅 g_param_value_set_default()。

value_validate

确保 value 的内容符合 pspec 规定的规范(可选),请参阅 g_param_value_validate()。

values_cmp

根据 pspecvalue1value2 进行比较(推荐,默认值为 memcmp()),请参阅 g_param_values_cmp()。