C_and_CPP 板


LINE

在找 callback 的概念的时候 看到一段范例 (Code #1) 直观看起来跟直接 call function 不是一样吗 (Code #2) 请问使用 callback 的时机会是什麽呢 有找过几篇文章 大部分都是范例 有带解释 不过还是 ... 没有很理解 ------------ Code #1 ------------ // A simple C program to demonstrate callback #include<stdio.h> void A() { printf("I am function A\n"); } // callback function void B(void (*ptr)()) { (*ptr) (); // callback to A } int main() { void (*ptr)() = &A; // calling function B and passing // address of the function A as argument B(ptr); return 0; } ------------ Code #2 ------------ int main() { A(); return 0; } --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.76.215.38 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1578450955.A.ECB.html
1F:推 plsmaop: 没在 c 里面写过 callback,在 js 里通常是发出一个 http 01/08 10:48
2F:→ plsmaop: request 之後告诉 js runtime 说拿到 response 後执行这 01/08 10:48
3F:→ plsmaop: 个 callback,参数是 response 带回来的内容 01/08 10:48
4F:推 plsmaop: 我想一下其他情境:可能有好几个功能大部分的行为是一样 01/08 10:51
5F:→ plsmaop: 的,只差在最後,那我把共同的部分抽出来,然後把不一样 01/08 10:51
6F:→ plsmaop: 的行为包成 function,传进去给共同的部分,共同的部分 01/08 10:51
7F:→ plsmaop: 最後会跑传进来的 function 01/08 10:51
8F:推 LPH66: 以你的 Code#1 为例的话, 考虑 B 是函式库里已经写好的程式 01/08 11:28
9F:→ LPH66: 它的有些地方会需要使用者传入部份动作或逻辑 01/08 11:29
10F:→ LPH66: 一个最简单的这样的例子是 C 的 qsort 01/08 11:29
11F:→ LPH66: qsort 的第四参数是传入一个函式, 即是这种状况 01/08 11:30
12F:→ LPH66: 套用四楼的说法的话: 快排演算法的主逻辑是不变的 01/08 11:31
13F:→ LPH66: 不一样的是元素如何比大小, 所以把它抽出来作为 callback 01/08 11:32
14F:→ hsnuyi: 韧体常用 01/08 12:53
15F:推 flysonics: 你去看driver code会更容易体会到用callback的时机 01/08 22:14
16F:推 ko27tye: 同样return和参数的function pointer可用同一个callback 01/08 22:15
17F:→ flysonics: 通常是需要非即时性的handler function时会用到 01/08 22:15
18F:→ flysonics: 你如果很确定function routine的话其实直接写就OK 01/08 22:17
19F:推 dces4212: UART接收後的handler function也是个callback 01/08 22:37
20F:推 boss0405: LinuxDriver的ops,或是HAL层的模组化 01/08 22:59
21F:→ largesperm: 原来是这样 各位的解释很直观 明白了 谢谢 01/09 08:55
22F:推 cphe: 没有马上要执行的就叫callback 01/09 09:41
23F:→ cphe: Linux kernel很多可以看看,你这范例蛮不好的其实 01/09 09:42
24F:→ final01: 没有马上要执行就是callback这解释我也是醉了 01/23 22:40
25F:推 cia1099: 你只要想写lamda的时候就是call back的时机了 02/24 08:21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP