将字符数组转换为const gchar*

Mar*_*rts 0 c gtk

我有一个包含字符串的字符数组:

char buf[MAXBUFLEN];
buf[0] = 'f';
buf[1] = 'o';
buf[2] = 'o';
buf[3] = '\0';
Run Code Online (Sandbox Code Playgroud)

我希望将此字符串作为参数传递给gtk_text_buffer_insert函数,以便将其插入到GtkTextBuffer.我无法弄清楚的是如何将它转换为a const gchar *,这是gtk_text_buffer_insert第三个参数.

有人可以帮帮我吗?

Geo*_*che 7

gchar只是一个typedeffor,char并且从数组到const指针的转换是隐式的,所以你可以传递它:

someFunctionExpectingConstGcharPointer(buf);
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以使用字符串文字直接初始化数组:

char buf[MAXBUFLEN] = "foo";
Run Code Online (Sandbox Code Playgroud)

  • 我想补充一点,没有理由使用"gchar"typedef.由于历史原因,它在GTK +中使用(一致性,因为没有人想进行巨大的搜索和替换).但是不要在应用程序中使用它.gchar被定义为char.对于gint,gdouble等也是如此,它们被定义为与int和double相同. (6认同)