2010-06-09 105 views
1

在我的GTK +應用程序,我有功能是mainwin.c:錯誤:未聲明的功能

void 
on_prev(GtkWidget* btn, MainWin* mw) 
{ 
    ... 
} 

而且在文件ui.hi有:

#include "mainwin.h" 
static const GtkActionEntry entries[] = { 
    { 
     "Go Back", 
     GTK_STOCK_GO_BACK, 
     "Go Back", 
     "<control>b", 
     "Go Back", 
     G_CALLBACK(on_prev) 
    }, 
} 

但是,當我嘗試編譯這個應用程序,我看到錯誤:ui.h:錯誤:'on_prev'此處未聲明(不在函數中)。

怎麼了?

謝謝。

回答

1

添加原型它,大概在mainwin.h:

void 
on_prev(GtkWidget* btn, MainWin* mw); 
+0

謝謝你的回覆,我在mainwin.h中添加了原型,但它沒有幫助:( – 0xAX 2010-06-09 08:25:50

+0

請發佈'mainwin.h'的源代碼,以及確切的錯誤。 – 2010-06-09 10:54:58

0

你真的不應該在頭的靜態數據。這意味着每次從C文件包含該文件時,都會獲得該陣列的新靜態(即,該C文件的本地)實例。這很可能不是你所需要的。

將數組的聲明和初始化移動到C文件中,並確保它所引用的各種函數都被正確聲明。