Gcc 使用内部的常量char*names[]初始化结构

Gcc 使用内部的常量char*names[]初始化结构,gcc,struct,constants,Gcc,Struct,Constants,我看到了很多关于这个的问题,但我提出了一个问题,因为,这与我在其他问题中看到的相去甚远…我认为这个结构初始化得很好…至少在理论上 GdkColor是GTK中的一个结构,内部有4个整数,{0,65535,0,0}来初始化它 我正在使用gcc编译器 所以我有一个结构: #include <gtk/gtk.h> typedef struct components{ GtkWidget *window; GtkWidget *table; G

我看到了很多关于这个的问题,但我提出了一个问题,因为,这与我在其他问题中看到的相去甚远…我认为这个结构初始化得很好…至少在理论上

GdkColor是GTK中的一个结构,内部有4个整数,{0,65535,0,0}来初始化它

我正在使用gcc编译器

所以我有一个结构:

#include <gtk/gtk.h>

typedef struct components{
    GtkWidget *window;
        GtkWidget *table;
            GtkWidget *table_box;
                GtkWidget *describe;
                    GdkColor color;
                    const gchar *gcolor;
                GtkWidget *combo_bboard;
                GtkWidget *combo_bmcu;
                GtkWidget *go;
               GtkWidget *plugin_notebook;
                const gchar *notebook_name_pages[5];
                    gint num_pages;
                    GtkWidget *name_page;
                    GtkWidget *frame;
                    GtkWidget *content;
                        GtkWidget *checkbutton;
}plugin_items;

/* plugin_items items; */
plugin_items items = { NULL, NULL, NULL, NULL, { 0, 65535, 0, 0 }, 
               {"red"}, NULL, NULL, NULL, NULL, { "Features", "Diagram", 
               "Peripherals", "Registers", "ASM Instructions" }, 0, NULL, 
               NULL, NULL, NULL };

   /* THIS Is THE 32 LINE that gcc complains about */
   items.num_pages = (gint)( (sizeof( items.notebook_name_pages)/sizeof( void *));
我很累,但我想一切都好

为什么??上帝保佑我

有人知道如何解决这个问题吗? 我不知道是什么错误…我正在使用GTK。 我无法解决这个问题,我不理解错误:S,我找不到它。。。 我在死胡同里呆了大约两天

谢谢你们的帮助,伙计们。 也许我正在做一些完全愚蠢的事情…但我不知道在哪里:S

提前谢谢
jonh

除了极少数例外,C语言不允许函数外的代码,因此该代码必须放入函数中。您必须执行以下操作:

void myfunction(){
    items.num_pages = ...
}

第57-59行出现错误,但只显示了26行。您好,谢谢您的帮助,我已更新了问题,对此表示抱歉:在第32行,我告诉items.num_pages,页数为5…但我不知道为什么,它抱怨:S谢谢你的帮助,我在那行看到5个左括号,只有4个右括号。
void myfunction(){
    items.num_pages = ...
}