【问题标题】:g_slice_new doesn't accept my struct typeg_slice_new 不接受我的结构类型
【发布时间】:2009-07-28 14:25:20
【问题描述】:

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

在下面示例的 sn-p 中,我得到一个错误:“数据之前的语法错误 - 它指的是 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

【问题讨论】:

    标签: c gtk glib gtk2


    【解决方案1】:

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

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

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

    gpointer data;
    
    int main(int argc, char *argv[])
    {
        ...
        data = g_slice_new(Data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2016-12-23
      相关资源
      最近更新 更多