函数

GLibset_str

自:2.76 起

声明 [src]

static inline gboolean
g_set_str (
  char** str_pointer,
  const char* new_str
)

描述 [src]

将指向字符串的指针更新为 new_str 的副本,并返回字符串是否 已更改。

如果 new_str 匹配前一个字符串,该函数为 no-op。如果 new_str 有所不同,将把其副本分配给 str_pointer,并使用 g_free() 释放由 str_pointer 指向的前一个字符串。

str_pointer 不能为 NULL,但可以指向 NULL 值。

该函数的一个方便用法是实现属性 设置

void
foo_set_bar (Foo        *foo,
             const char *new_bar)
{
  g_return_if_fail (IS_FOO (foo));

  if (g_set_str (&foo->bar, new_bar))
    g_object_notify (foo, "bar");
}

自 2.76 起可用

该函数不能直接对语言绑定使用。

参数

str_pointer

类型: char**

指向字符串或 NULL 的指针。

参数将由函数修改。
函数呼叫者获取对返回数据的拥有权,并负责释放数据。
该值为以 NUL 结尾的 UTF-8 字符串。
new_str

类型: const char*

要分配给 str_pointer 的字符串。

该参数可以为 NULL
该数据归函数呼叫者所有。
该值为以 NUL 结尾的 UTF-8 字符串。

返回值

类型: gboolean

如果 str_pointer 的值更改,则为真;否则为 假。