数据定义在函数定义中没有类型或存储类

时间:2012-08-03 02:19:56

标签: c linux-kernel

编译自定义Linux内核时,我收到一些警告。我已将代码(用于调试)减少到:

int sw_totcp(struct ip_vs_service *svc)
{
        return(1);
}
EXPORT_SYMBOL(sw_totcp);

int (*sw_totcpcall)(struct ip_vs_service *) = &sw_totcp;
EXPORT_SYMBOL(sw_totcpcall);

仍然收到这些警告(对于函数和函数指针):

warning: data definition has no type or storage class [enabled by default]
warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’ [-Wimplicit-int]
warning: parameter names (without types) in function declaration [enabled by default]

它们在头文件中正确声明,如:

extern int sw_totcp(struct ip_vs_service *);

extern int (*sw_totcpcall)(struct ip_vs_service *);

可能有什么问题?

1 个答案:

答案 0 :(得分:2)

看起来您没有包含定义EXPORT_SYMBOL宏的标头。这就是编译器抱怨隐式声明的原因:它认为它是一个返回int的函数。