here:

g_array_append_val()

#define             g_array_append_val(a,v)

将值添加到数组的末尾。必要时,阵列大小会自动增加。

g_array_append_val()是一个宏,它使用对值参数v的引用。这意味着您不能将其与文字值(例如“27”)一起使用。您必须使用变量。

参量

a一个GArray

v附加到GArray的值

像这样的所有宏定义是否可能不太正确? a是否不是指向GArray的指针?

最佳答案

看来文档的术语是将指向GArray的指针称为GArray。 (这不是准确的IMO)。
例如,查看下一项:

g_array_append_vals()

GArray *
g_array_append_vals (GArray *array,
                     gconstpointer data,
                     guint len);
将len元素添加到数组的末尾。
参数数组GArray ...
返回GArray的

在这里,数组显然是GArray的指针。

LPs' comment中,可能的原因可能是因为无法创建GArray的对象。 (如果我没记错的话,它是一个不透明的指针),并且通过调用g_array_new()获得的新数组的类型为GArray *

09-09 18:35