首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么引用结构中的函数指针

2012-03-26 
如何引用结构中的函数指针?我现在在Log.c里定义了一个结构structLog{append_functionappendfixedQueue_t*

如何引用结构中的函数指针?
我现在在Log.c里定义了一个结构
struct   Log
{
        append_function   append;
        fixedQueue_t   *fq;          
};
同时定义了一个函数
int   Log_append(char*msg)
{
        printf(msg);
        return   0;
}
然后这样写初始化函数
Log_t   *   Log_init(int   size)
{
        Log_t*   log   ;
        log=   calloc(1,sizeof(Log_t));
        fixedQueue_t   *fq   =   queue_init(size);
        log-> fq   =   fq;
        log-> append   =   Log_append;
        return   log;
}

头文件里这样调用


typedef   int   (*save_function)(void);
typedef   int   (*append_function)(char*   msg);
       

typedef   struct   Log   Log_t;
然后我在Log.c里的main函数写上测试代码
int   main(int   argc,   char**   argv)
{
        //test();
          Log_t*   log   =   Log_init(20);
        log-> append( "hello ");
        return   (EXIT_SUCCESS);
}
这样写我能调用
我现在在另一个c文件里的main函数写同样的代码
结果gcc报错
提示我提领指向不完全类型的指针
问题处在log-> append( "hello ")里
我想知道这是为什么。有人能帮助我吗?

[解决办法]

int Log_append(char*msg)
{
printf(msg);
return 0;
}
是在哪里定义的,最好把所有代码贴出来

热点排行