在Ubuntu11.04上用GCC4.5.2声明函数指针时出错

在Ubuntu11.04上用GCC4.5.2声明函数指针时出错,c,gcc,C,Gcc,如果我使用cc扩展名命名文件,则会接受此名称。扩展名为.c int (*foo)(epoll_event e, void *data); 我已经在谷歌上搜索过了,声明似乎对C是有效的。有人能提供关于如何解决这个问题的意见吗? 谢谢我猜epoll_event不是类型名,而是结构标记名 在这种情况下,您需要添加struct: error: expected ‘)’ before ‘e’ 这表明: int (*foo)(struct epoll_event e, void *data); 你

如果我使用cc扩展名命名文件,则会接受此名称。扩展名为.c

int (*foo)(epoll_event e, void *data);
我已经在谷歌上搜索过了,声明似乎对C是有效的。有人能提供关于如何解决这个问题的意见吗?
谢谢

我猜
epoll_event
不是类型名,而是结构标记名

在这种情况下,您需要添加
struct

error: expected ‘)’ before ‘e’
这表明:

  int (*foo)(struct epoll_event e, void *data);

你能给出epoll_事件的定义吗?
struct epoll_event {
    uint32_t     events;      /* Epoll events */
    epoll_data_t data;        /* User data variable */
};