错误:未声明的功能

时间:2010-06-09 08:10:20

标签: c gtk

在我的gtk +应用程序中,我在mainwin.c中有函数:

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

在文件ui.h中我有:

#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'在这里未声明(不在函数中)。

怎么了?

谢谢。

2 个答案:

答案 0 :(得分:1)

为它添加一个原型,可能在mainwin.h中:

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

答案 1 :(得分:0)

你真的不应该在标题中有静态数据。这意味着每次从C文件中包含该文件时,都会获得一个新的静态(即该C文件的本地)实例。这很可能不是你所需要的。

将数组的声明和初始化移动到C文件中,并确保正确声明它所引用的各种函数。