码迷,mamicode.com
首页 > 其他好文 > 详细

回调函数的应用误区2(与原理相悖的回调函数)

时间:2014-05-26 06:38:29      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   c   ext   a   color   int   

研究了一段时间回调函数,越看越迷惑,分析并改进了从网上看到的几篇好文,看过后有了自己的看法。我也不知道这些跌跌撞撞的认识是否符合回调的真实原理,若有大侠能帮解惑,自当感激不尽。

下面的代码可以在Vs2008下编译并运行:

个人观点:

以下代码虽说是按照C/S,调用者/被调者的思路去设计回调函数的,但实际上整个代码里面缺少最关键一环:没有出现被调函数(即用回调函数做参数的函数),所以不符合回调函数的基本原理。

就把它当成c/s模式下的函数指针调用吧,或者不伦不类的函数指针调用,没有理解到回调函数的真正含义,这个误区你犯过了没?。

################dll.h################

#pragma once
typedef void (* CALLBACK)(int var);
extern CALLBACK g_pfunc;
extern void dll_register_callback();

################dll.cpp################

#include <stdio.h>
#include "dll.h"

CALLBACK g_pfunc = NULL;

//回调函数定义
void CallBackFunc(int var)
{
    printf("[CallBackFunc]: data=%d\n", var);
}

//回调函数注册
void dll_register_callback()
{
    g_pfunc = CallBackFunc;
}
################app.cpp################

#include <stdio.h>
#include "dll.h"

int main()
{    
    //register CALLBACK
    dll_register_callback();
    //run CALLBACK
    (*g_pfunc)(20);
    return 0;
}

回调函数的应用误区2(与原理相悖的回调函数),布布扣,bubuko.com

回调函数的应用误区2(与原理相悖的回调函数)

标签:style   c   ext   a   color   int   

原文地址:http://www.cnblogs.com/jacklikedogs/p/3748002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!