0

这就是我构建它的方式:gcc pkg-config --cflags --libs gtk+-2.0-o spawn spawn_with_pipes.c

在下面的示例片段中,我收到一个错误:“数据之前的语法错误 - 它指的是 data= g_slice_new(Data);

#include <gtk/gtk.h>

typedef struct
{
    /* Buffers that will display output */
    GtkTextBuffer *out;
    GtkTextBuffer *err;

    /* Progress bar that will be updated */
    GtkProgressBar *progress;

    /* Timeout source id */
    gint timeout_id;
}Data;

data= g_slice_new(Data); //error here
4

1 回答 1

3

函数外部的初始化器必须是常量表达式。您不能在其中调用函数。

此外,您代码中的变量“data”是一个 int,而 g_slice_new 的返回是一个 gpointer。

您将需要更改“数据”的定义并将初始化移至 main:

gpointer data;

int main(int argc, char *argv[])
{
    ...
    data = g_slice_new(Data);
于 2009-07-28T14:34:52.493 回答