在什么情况下使用回调函数?我知道它们的工作原理,我已经看到它们被使用并且自己也多次使用过。
C语言的一个例子是libcurl
,它依赖于回调函数进行数据检索。
另一个相反的例子是OpenSSL:在我使用它的地方,我使用输出参数:
ret = somefunc(&target_value);
if(ret != 0)
//error case
我想知道何时使用哪个?回调只在异步操作时有用吗?我正在设计我的应用程序API,我想知道是否使用回调还是仅使用输出参数。在内部,它将使用libcurl和OpenSSL作为主要构建库,并且“返回”的参数是OpenSSL数据类型。
我没有看到回调比直接返回有任何好处。如果我想以某种方式处理数据而不仅仅是返回数据,则这只有用处吗?但是然后我可以处理返回的数据,区别在哪里?