我看到了很多关于此问题的问题,但我提出了一个问题,因为这与我在其他问题中看到的情况相差甚远......我认为sctruct已经初步完成了......至少是teorically ......
GdkColor是GTK中的一个结构体,内部有4个int数字,所以{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 *));
当我编译时,我得到了一个奇怪的错误:
gcc -c environment.c -fPIC `pkg-config --cflags gtk+-2.0`
environment.c:32:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
make: *** [environment.o] Error 1
我很累,但我觉得一切都好......
为什么呢?帮助我上帝......
有没有人知道如何解决这个问题? 我不知道错误是什么......我正在使用GTK。 我无法解决这个问题,我不明白错误:S,我找不到它...... 我在DEAD END呆了大约两天......
我很感谢你的帮助。 也许我正在做一些完全愚蠢的事情......但我不知道在哪里:S
提前谢谢 jonh答案 0 :(得分:0)
除了极少数例外,C语言不允许代码在函数外部,因此这段代码必须包含在函数中。你必须做类似的事情:
void myfunction(){
items.num_pages = ...
}