函数

GLibOnceinit_enter_pointer

自 2.80 起存在

声明 [src]

gboolean
g_once_init_enter_pointer (
  void* location
)

描述 [src]

这个函数的行为与 g_once_init_enter() 相同,但可以用它来初始化指针(或 #guintptr),而不是 #gsize。

  static MyStruct *interesting_struct = NULL;

  if (g_once_init_enter_pointer (&interesting_struct))
    {
      MyStruct *setup_value = allocate_my_struct (); // initialization code here

      g_once_init_leave_pointer (&interesting_struct, g_steal_pointer (&setup_value));
    }

  // use interesting_struct here

自 2.80 起可用

参数

location

类型: void*

包含 NULL 的可静态初始化变量的位置。

数据由函数的调用者拥有。

返回值

类型: gboolean

如果应进入初始化部分,则为 TRUE,否则为 FALSE