
function pointer用途 在 コバにゃんチャンネル Youtube 的最讚貼文

Search
Function Pointers | C Programming Tutorial. Portfolio Courses ... How and when to use Function Pointers ? CodeBeauty. CodeBeauty. ... <看更多>
function pointer ¶. (*(void(*)())0)(). 用途. 指向其他的函數這樣寫只需要一行,缺點一般人看不懂. ((void()())dd_prt)()把function pointer 指向其他的函數 ... ... <看更多>
Function Pointer 顧名思義,就是指向Function 的指標。在C 語言中,不論是variable、array、struct、或是function(一段程式碼),都有所屬的起始記憶體位置。
#2. [C語言]function pointer的應用[一]: pass function to function
我們在寫程式的時候,會對一個程式傳入參數。參數的性質可以是一般的變數(pass by value)或者是指標(pass by reference)。那麼既然對於參數而言,可以 ...
#3. (c/c++) Function Pointer函式指標兩三事 ... - 草之程式小記
Function Pointer (中文直譯「函式指標」),即為儲存某一個函式起始memory address的變數,此變數可以提供我們在之後進行呼叫。 乍聽之下,function ...
#4. 函式指標(function pointer)-用途 - Stall...
函式指標(function pointer)-用途. 我喜歡用"寫程式的先後順序"來理解函式指標。 假設兩位程式設計師Red,Blue同時合作撰寫一個"顯示時間"的專案。
#5. [C/C++]函式指標function pointer - Programmer Style - 痞客邦
函式指標(function pointer) 一、簡介function本身在記憶體中也佔有一份空間,而function的名稱正是指向此空間的一個參考名稱,當我們呼叫此function ...
#6. Function Pointer - 函式指標 - swchou's Tech Blog
C 語言有一個強大的功能,Function Pointer (函式指標),在我真正了解它之前,只是覺得它能用指標來代表一個函式而已。但事實上並非如此,受到物件 ...
#7. 在C++ 裡傳遞、儲存函式Part 1:Function Pointer
這一系列文章,主要是整理一下Heresy 自己知道,可以用來儲存、傳遞一個函式(function)的一些方法;當然,主要就是function pointer 和function ...
#8. 函式指標
C++ 11 提供了 function ,定義於 functional 標頭檔,該類別的實例可以接受Callable 物件,函式指標是其中之一,使用它來定義接受函式指標的參數,語法上會比較輕鬆 ...
#9. DAY 10:Function Object and std::function,卷一 - iT 邦幫忙
C++ 有一個概念叫 Function Object (函數物件),寬鬆一點的定義是:任何可以被當做函數呼叫 ... Function; Function Pointer; Class or Struct with operator().
d is a pointer to a function that takes two parameters: a reference to an int and ... 特別的用途:沒有名稱的bit-field 可以做為padding.
#11. Lab 3-2: 函式指標(Function Pointer) - 丁培毅
1. 瞭解什麼是C/C++ 中的函式指標(Function pointer) 2. 為什麼需要函式指標這種語法 3. 使用C/C++ 中函式指標(Function pointer) 的語法 4. 多型的概念.
#12. 指標(電腦科學) - 维基百科,自由的百科全书
function pointer type:指代一個函式. 指標參考(reference)了記憶體中一個位址。通過被稱為指標反參考(dereferencing)的 ...
#13. 函数指针(function pointer)and 回调函数(callback) 翻译
函数指针的另一个用途是设置在特定事件发生时调用的“监听器”或“回调”函数。调用该函数,这会通知您的代码发生了一些感兴趣的事情。 为什么要用回调函数 ...
#14. Function pointers - C# 9.0 specification proposals
我們只會查看應用程式核心程式庫中定義的類型,也就是定義且沒有相依性的程式庫 System ...
#15. C/C++之指標(pointer),參考(reference) 觀念整理與常見問題 ...
變數的指標指向變數的位址,同樣的,function pointer (函式指標) 也是 ... 在說明函式指標的用途前,我們先直接由語法來看看函式指標該怎麼宣告、 ...
#16. function pointer用途2022-電腦遊戲開箱資訊影片紀錄,精選在各式網 ...
function pointer用途 2022-相關電腦遊戲網路資訊,精選在Youtube的分析開箱影片,找function pointer用途,c function pointer,c pointer function,function pointer ...
#17. 陣列指標與函數
看見[]就說array[] of; 看見*就說pointer to; 看見變數後面的()就說function() ... x: a pointer to array[] of pointer to function(int,int) returning char.
#18. 【C 語言入門】 32.1 - 函式指標簡介 - YouTube
Function Pointers | C Programming Tutorial. Portfolio Courses ... How and when to use Function Pointers ? CodeBeauty. CodeBeauty.
#19. C++ 函式指標、指標與類別成員 - XYZ的筆記本
指標指到物件的資料成員(Pointer to Data Member) 4.指標指到Class 的Static Member ※函式指標(Function Pointer) C 語言指標可以指到一個變數的記憶 ...
#20. 什麼是Function Pointer - 安德森觀察筆記
C語言允許陣列指標和函數三者混合宣告,以表達複雜的資料結構。對於要撰寫比較複雜的應用程式來說,了解這三者的關係是非常必要的。例如下面的變數x到底是 ...
#21. 在C++ 裡傳遞、儲存函式Part 1:Function Pointer › vimL Blog
custom_for_each() 這個函式則就是這邊的重點,它的用途是傳入一個整數的陣列pArray 和他的大小size,以及一個function pointer op;而這邊 ...
#22. C語言: 超好懂的指標,初學者請進~ - 寫點科普Kopuchat
還記得我們說過,指標(Pointer) 就是某變數的位址。而這邊的指標變數(Pointer Variable),則是用來存放指標的變數。 案例中的 ...
#23. 【C語言觀念複習筆記】函數指標陣列(Array of function pointer)
之前寫過一篇文章討論過指標陣列的觀念這個指標陣列的指標當然也是有型態的, 上述文章是char 而也可以是指向function 因為指標陣列在上面文章討論過了 ...
#24. [C語言] function pointer的應用[四] | 健康跟著走
比如說下列範例,根據state ..., 更多水面上的小草的C語言推薦文章. 利用function pointer array索引 ...,How should I use array of function pointers in C? How can I ...
#25. [C語言][筆記]回調函數(Callback Function) - 胖屁吉
中文叫做回調函數,這應該算是C語言中比較進階的指標應用,這用法在Linux kernel裡面很常見。 那麼Call back是一個什麼概念? (其實有點類似英文的Call me ...
#26. [教學]C/C++ Callback Function 用法/範例(內含Function Pointer ...
CallBack Function 前言: 會想寫這一篇的主要原因是因為人老了怕健忘,而且網路上的版本似乎都是一樣的,所以才想寫一個淺顯易懂的來幫助有需要的人來 ...
#27. C 語言中的函式指標 - Delft Stack
C C Pointer. 在C 語言中使用 void (*func)() 符號來定義函式指標; 使用函式指標陣列實現型別通用程式設計特性. C 語言中的函式指標.
#28. 指標- Lu Yi Hsun
function pointer ¶. (*(void(*)())0)(). 用途. 指向其他的函數這樣寫只需要一行,缺點一般人看不懂. ((void()())dd_prt)()把function pointer 指向其他的函數 ...
#29. 指標(pointer) 是C程式語言最強大的功能之一
常數資料的非常數指標(a non-constant pointer ... 受呼叫函式便可利用指標算術運算(pointer ... 函式指標(function pointer) 常會用在文字型態的. 選單驅動系統上。
#30. C 語言:typedef 的用法 - 傑克! 真是太神奇了! - 痞客邦
但是就後續程式的實際應用來說: 這二個typedef 定義完全一致, 程式的寫法相同, 效果也完全一樣. 之所以會有這種情形, 是因為C 編譯器對function pointer ...
#31. Pointer is Address. That's it! - 創意海豚的部落格
正式的說法則是:pointer 是一個用來存放address 的變數,它的用途就是用來記住 ... 可利用function pointer 與generic pointer 將NotifyMe 與my_obj ...
#32. [C 語言] 程式設計教學:指標(Pointer) 和記憶體管理(Memory ...
指標(pointer) 是C 語言的衍生型別之一。指標的值並非資料本身,而是另一塊記憶體的虛擬位址(address)。我們可利用指標間接存該指標所指向的記憶體的 ...
#33. 2月2019 - 阿良的嵌入式系統技術學習區
【C語言觀念複習筆記】函式指標陣列(Array of function pointer) ... 是完全沒有能力去做好MCU系統設計的,因為這種韌體的用途重點就是在於驅動/控制 ...
#34. C++物件導向及增進效率程式技巧
Pointers to Classes (類別指標) ... function)或作為全域函數(global function)。它們的用法沒有區別,但是請注意全 ... 些功能最簡單的用途。想像一下如果在物件 ...
#35. POINTER - 指標(Fortran 90) - IBM
用途. POINTER 屬性會將物件指定為指標變數。 ... 整數POINTER 陳述式提供舊版IBM® XL Fortran 中所記載內容的詳細資料, ... Function result is a pointer .
#36. [C++] 利用函數指標(funtion pointer)實現委派機制(delegate)
所謂函數指標,顧名思義就是一個指向函數的指標,看起來他的用途似乎像是 ... return 0; } // define pFun is a function pointer of (out: bool in: ...
#37. 真的很可怕的C語言ch12--指標與陣列讀書筆記 - PL-learning Blog
在本章,終於要說明C語言的最難關--pointer(指標)了。如果能理解指標的話, ... 目前為止,單單知道變數是在哪裡,用途也只知道把字串交給函數而已。
#38. 第六章函式(Method;方法)
在物件導向程式設計中,這些函式(function)被稱為方法(method),並且隸 ... method。 6.1 認識函式. 4. Java提供的函式功能與數學的函數類似 ... by pointer)!
#39. C++11 Syntax -- Lambda Expressions - GitHub Gist
常見用途: 便於宣告一次性用途的function, 例: std::list<int> nums; ... 只有不使用任何Capture 的lambda 可以自動轉型為C 的function pointer type.
#40. 什麼是指標? - 18DICE
概念2: 函式指標(function pointer). • 函式指標的主要用途是讓函式可做為另一個函式的參數傳入。 • int func(int, int, int (*ptr)(int, int)) func 的第三個參數.
#41. Root Finding - 演算法筆記
使用了function pointer的語法。 // 把f(x)當作參數,比較有個函式的模樣了! ... 窮舉法非常慢。接下來介紹更快的方法。 Root: Bisection Method. 用途.
#42. typedef function pointer c - 稀土掘金
而function pointer则是C语言中的一个指针类型,它指向一个函数。将这两个概念结合起来,就可以用typedef定义一个新类型的函数指针。 例如,下面的代码定义了一个名 ...
#43. 無題
C語言指標應用. 指標(電腦科學) - 維基百科,自由的百科全書https://www.delftstack.com/zh-tw/howto/c/c-function-pointer/ WebMar 27, 2018 · 在C的優先表中, Array ...
#44. 類別成員函式指標 - Wikiwand
類別成員函式指標(member function pointer),是C++語言的一類指標資料類型,用於儲存一個指定類 ... 類別成員函式指標的主要用途是把資料與相關代碼結合在一起。
#45. 6月2020
Dereference a raw pointer; 呼叫unsafe function or method ... type alias 的主要用途是減少重複。 ... never type 的另一個用途是 panic!
#46. [C++] 優雅玩耍函數指標呼叫,把你同事玩弄得嫑嫑的。(離職 ...
最近正好寫一些玩具想模組化,以前在處理Function Pointer 都是強轉型+ typedef 然後^C^V 瘋狂複製貼上函數型別來做到C/C++ 內對指標函數呼叫。
#47. C语言函数指针详解 - 脚本之家
函数指针Function Pointers. 一个函数指针可以像函数一样被调用,包括传递参数和获得返回结果。函数指针的一些用途是用于编写泛型generic函数,有时是 ...
#48. 無題
... 使用的特點,成為了近30 年來備受軟體工程師青睞,用途最為廣泛的語言。 ... https://www.delftstack.com/zh-tw/howto/c/c-function-pointer/ Web許多開發C 語言 ...
#49. C Compiler V3 使用手冊 - Holtek
C:\Users\test\Text1.c:14:10: error: Holtek-gcc does not yet support function pointer. void FileFunc(){} void EditFunc(){} void foo().
#50. [問題] function pointer 的用處- 精華區C_and_CPP - 批踢踢實業坊
請教各位先進一下, function pointer 最常用到的地方是在哪裡? 小弟雖然學過,但是卻從未使用過.. @@! -- ※ 發信站: 批踢踢實業坊(ptt.cc)
#51. C++ 函数指针与指针函数 - 知乎专栏
函数指针(Function Pointer)是指向函数的指针变量。它可以存储函数的地址, ... 函数指针和指针函数是不同的概念,用途和语法也有所不同。
#52. 電機學院與資訊學院資訊學程 - 國立交通大學機構典藏
hardware of the device、all function require of the device and Windows ... 式模型(Device Driver Model)及一般用途的字元驅動程式(General Purpose Character.
#53. Programming Language An Introduction C 程式設計語言基礎
數學的函數規定一定要傳回一個值, 但C 的函數(function)可以不用傳回任何東西, ... 在早期, C 語言優於其它程式語言之處, 除了pointer, 位元運算元也是其中之一,.
#54. dspic中的frame pointer 是要做何用[16-bit PIC24/dsPIC® Device]
不知能否舉個簡單例子,說明frame pointer的用法謝謝! ... 大小剛好就是被呼叫函數中所有的區域變數(包含參數),但是除了遞迴之外是否還有其他的用途?
#55. C語言- 第三十二章| struct - 結構與指標 - J.J.'s Blogs
... 擁有的函式時,傳入實例的位址值,如此該函式可以取得實例成員值並進行運算,這是在模擬物件導向中,物件實例擁有屬性及方法( method )的特性。
#56. [C#] Delegate 與Event - Lucas's Code - WordPress.com
委派類似C++ 的函式指標,主要的用途就是「傳遞方法」,Event 也是基於 ... 後來發現delegate跟C的function pointer很相似,而且function pointer個人 ...
#57. C程式-函式與巨集 - SlideShare
Pointer to function 2Abu Bakr Ramadan1.1K views•9 slides ... 每個函數都應該有單一和定義明確的用途呼叫函數時,可使用參數來傳遞給被呼叫函數; ...
#58. C 語言程式設計教學講義
二、函式(Function) 定義的格式. ... 五、遞迴函式(Recursive Function). ... 事實上,傳遞至函數中的也就是指向陣列位址的指標(Pointer)。 範例. #include <stdio.h>.
#59. 一个参数怎么可能有类型但没有名称? - 腾讯云
cfunction-pointersfunction-prototypes. 我看到一个问题被标记为一个 ... 这是一个潜在的用途(我不是说它是好是坏。只是为了表明这是可能的)是对原型 ...
#60. C語言
C語言的概念是以函數(Function)為主,連 ... 用途:. ▻ 陣列(Array)係用來儲存一組具有相同資料型態. 的資料。 ▻ 目的: ... 指標(Pointer).
#61. delegate的用途??- 藍色小舖BlueShop
it's a safe function pointer usually used as callback function. 本篇文章回覆於2007-05-29 20:08. == 簽名檔== --未登入的會員無法查看對方簽名檔 ...
#62. C 說話:typedef 的用法 - waynepearlep - 痞客邦
Examples of typedef a pointer typedef struct _list_node_ ... (2) // Examples of typedef a function or pointer of function typedef int ...
#63. Keil C51 和標準C 語言的差異
具體資料可以參考Keil C51 Application Notes 129: Function Pointers in C51 ... 不要有共用函數(直接在名稱上區分用途).
#64. 类成员函数指针- 抖音百科
member function pointer. 定义. 一类指针数据类型. 学科. 编程语言. 用途 ... 类成员函数指针是一类指针数据类型,C++的语法之一,主要用途是把数据与相关代码结合在 ...
#65. Is there any practical use for a function that does nothing?
When I've created tables that contain function pointers, I do use empty functions. For example: typedef int(*EventHandler_Proc_t)(int a, int b) ...
#66. 第八章指標 - YuChi Blog
指標 (Pointer) 是C語言重要而特別的一項課題,適當地運用指標可以增加 ... 運用指標的基本概念,各項運算與用途,請各位留心符號的寫法,多加練習。
#67. C 語言:Keil C51 和標準C 說話的差異 - johnfredqi - 痞客邦
具體資料可以參考Keil C51 Application Notes 129: Function Pointers in C51 ... 不要有共用函數(直接在名稱上區別用途).
#68. PyQt5 讓GUI 動起來為元件綁定Event 觸發Function - zhung
事件綁定(Event Binding). 將Function Pointer 綁在某一元件的Signal 上,需要用 connect 。以下示範幾種寫法綁定兩種 ...
#69. 5. 其他C++ 特性 - Google 開源專案風格指南(繁體中文版)
預設參數會干擾函式指標,害得後者的函式簽名(function signature)往往對不上所實際要呼叫的函式 ... RTTI 有合理的用途但是容易被濫用, 因此在使用時請務必注意.
#70. (原創) 如何讓pointer指向pointer自己? (C/C++) (C) - 博客园
題目很簡單,有一個pointer,希望他指的是自己這個pointer,也就是最後 ... 這沒什麼實際的用途,誠如原作者所說,just for fun,但看到了function ...
#71. 关于C++中指针,双指针的用途 - 51CTO博客
pointer 的意义就在于,你调用的时候,不是找人变量拿了,你直接怼人家里去自己取去了。 pointers to pointers的用途问题来了,你可以自己写两个function试 ...
#72. pointer valued function - Intel Community
英特尔技术可能需要支持的硬件、软件或服务激活。// 没有任何产品或组件能够做到绝对安全。// 您的成本和结果可能会有所不同。// 性能因用途、配置 ...
#73. 術語表— Python 3.11.4 說明文件
它看起來像一個以 async def 定義的協程函式(coroutine function),但不同的是它 ... 個情境,而情境變數的主要用途,是在並行的非同步任務(concurrent asynchronous ...
#74. C语言使用函数指针 - 极客教程
下面是使用函数指针的一个简单示例,其中函数接受一个整数参数并返回一个整数。我们也定义了square函数,对一个整数求平方并返回值。为了简化例子,假定整数不会溢出。
#75. Call by reference (C++軟體開發- 傳值、傳址、傳參考概念與實例)
C++ - call by value、call by pointer、Call by reference (C++軟體開發- ... 當我們呼叫function時,有時會需要傳入Arguments(actual parameter), ...
#76. C/C++之指標(pointer),參考(reference) 觀念整理與常見問題
變數的指標指向變數的位址,同樣的,function pointer (函式指標) 也是 ... 在說明函式指標的用途前,我們先直接由語法來看看函式指標該怎麼宣告、 ...
#77. C語言/Python 程式設計入門班|Accupass 活動通
程式語言有很多種,C/C++ 是一種用途廣泛的程式語言,一般說來,不管是在學術研究, ... Array)、字元與字串(Character and String)--指標(Pointer)、函式(Function)-- ...
#78. 風禹科技驗證有限公司Web News Reader
也許也有人用過function pointer. ... 能sort 各種型態的資料然後把Comparison 的function用function pointer的方式傳進去 ... 不肯定合不合你的用途
#79. [C++ - , CPP - ] 指標(Pointer)、指涉器(Reference)
宣告時使用的* 表示宣告指標變數,並無取值運算子* 的效果. 宣告時只能指派位址,而不能指派值; 範例: int myInt = 123; int *myIntPtr1 = myInt; // X 宣告時不能 ...
#80. FreeRTOS - 成大資工Wiki
Task 被建立出來後,它會配置有自己的堆疊空間和stack variable(就是function 中定義的變數) ... 的一個列表中,FreeRTOS 在TCB 中插入指向這個任務的pointer 的地方.
#81. 淺談C++ bind function - jyt0532's Blog
第一個參數給function pointer, 之後的參數給那個function的參數看你要怎麼wrap. 好處有2. Code reusable, 你現在看了沒感覺是因為他只是一個plus ...
#82. G09B 17 - Teaching reading - Patents Sitemap - Google
08/24/2011, CN201946151U 多功能教鞭 Multi-function pointer ... 08/03/2011, CN201918054U 多用途电子教鞭 Multi-purpose electronic pointer.
#83. Python 在類別內定義函式到底為什麼一定要有self 參數?
A.class_method() class method >>>. 只是必須以剛剛產生的A 類別物件來取用, 這時類別的用途就像名稱空間。 如果我們嘗試建立一個A 類別的物件, ...
#84. C 語言動態記憶體配置教學:malloc、free 等函數 - G. T. Wang
本文將介紹與C 語言動態記憶體配置有關的各種函數及其使用方式,包含 malloc 、 calloc 、 free 與 realloc 函數。 C 語言的動態記憶體配置可以讓程式 ...
#85. 程序參數Procedural Parameter: 最新的百科全書、新聞
然而,很少有現代C 編譯器允許嵌套函數定義,並且其他用途也相對不常見。 ... (computer programming) Comparison of Pascal and Delphi Function pointer SQL.
#86. 《程式語言》
三、在C 語言中,指標型態(pointer type)為其一大特色, ... 四、請用您熟習的語言,設計一程序(procedure)或函式(function),此程序或函式在參數傳遞方.
#87. [情報] 指標- 看板HCHS_BioClub - PTT網頁版
4. function pointer 變數的指標指向變數的位址,同樣的,function ... 在說明函式指標的用途前,我們先直接由語法來看看函式指標該怎麼宣告、怎麼 ...
#88. 10月2016 - Knowledge
clone()主要用途: 製作threads (例如: POSIX threads) ... The fn argument is a pointer to a function that is called by the child process at the ...
#89. 使用C 語言實作查表法取代switch - Fred's blog
但function table,則是cmp, push(or mov), function pointer 載入 ... 近來經手了幾個案子,其目標都是設計一台做特定用途的系統,但往往這台機器 ...
#90. function pointer 用法 - Keep Learning Everyday
2016年10月19日星期三 · function pointer 用法 · Using typedef with function pointers[edit source | editbeta].
#91. [Python教學]5個必知的Python Function觀念整理
今天要來教大家如何建構自己的 Python函式(Function),就是能夠讓你的程式碼被重複的使用(Reusable),並且提高維護性及可讀性。其中有五個必須要知道 ...
#92. 复杂的C语言标志 - 锐单电子商城
int &*p3; // ERROR: Pointer to a reference is illegal. ... 下面有一些用途typedef. 并给出了解释: ... typedef b *c; // c is a pointer to a function.
#93. Chapter 6 Data Types – part 2 - Coggle
型態不須固定(e.g. void * : 可指向任何型態,型別檢查OK,但不能反參照). Function Pointer. 說明: 用來指向function的指標( 例子p.6-35 ). 指標in 各語言.
#94. Mouse Jiggler The 'Zen jiggle'
Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer ...
#95. C 速查手冊- 6.5.6 函數指標 - 程式語言教學誌
函數(function) 雖然並非資料,然而編譯器(compiler) 實際會替函數的程式碼配置 ... 因此,呼叫函數可以直接用指標(pointer) ,這是C 語言提供的動態機制,有許多不可 ...
#96. Youtube 合作夥伴計劃 - xusah.online
No 4 Texas defeats No 14 West Virginia on Andrew Jones game winning 3 pointer. Night party ... Max Function Webi. Night party ...
function pointer用途 在 [問題] function pointer 的用處- 精華區C_and_CPP - 批踢踢實業坊 的推薦與評價
請教各位先進一下,
function pointer 最常用到的地方是在哪裡?
小弟雖然學過,但是卻從未使用過.. @@!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.241.220
> -------------------------------------------------------------------------- <
作者: UNARYvvv (有趣生活) 看板: C_and_CPP
標題: Re: [問題] function pointer 的用處
時間: Tue Nov 29 23:06:54 2005
※ 引述《openc ()》之銘言:
: 請教各位先進一下,
: function pointer 最常用到的地方是在哪裡?
: 小弟雖然學過,但是卻從未使用過.. @@!
舉個例子
某 BBS 站,決定使用者按鍵的動作
就是利用一個 array of function pointers
預先設定好各個字母所要執行的功能,也就是先指定個別的 function pointer
例如:
KeyFunc keys[MAX_KEYNUM] ; // KeyFunc 是一種 function pointer type
keys['A'] = &keyFuncA; // 可不寫 &
keys['B'] = &keyFuncB;
...
這樣子在執行時讀取到一個使用者的按鍵內容
經過檢查為合法按鍵值後,便可以直接進行相關的處理動作
( *(keys[按鍵值]) )( 引數內容 ); // 可不用寫 * 號
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.70.137.117
※ 編輯: UNARYvvv 來自: 61.70.137.117 (11/29 23:08)
> -------------------------------------------------------------------------- <
作者: qazq (...) 看板: C_and_CPP
標題: Re: [問題] function pointer 的用處
時間: Wed Nov 30 00:43:16 2005
※ 引述《openc ()》之銘言:
: 請教各位先進一下,
: function pointer 最常用到的地方是在哪裡?
: 小弟雖然學過,但是卻從未使用過.. @@!
目前我自己會用到的時機是在於,針對不同按鍵呼叫不同 function
(BBS 應該都是這樣的架構)
舉個例子來說....
struct commands
{
int (*fptr) ();
int key;
};
typedef struct commands commands;
int do_a(void), do_b(void), do_c(void);
int main()
{
int ch, key;
commands commandlist[] =
{
do_a, 'a',
do_b, 'b',
do_c, 'c',
NULL, '\0'
};
commands *commandPtr;
while (1)
{
ch = getch();
if (ch == 'q')
break;
commandPtr = commandlist;
for (; key = commandPtr->key, commandPtr++)
if (ch == key)
{
commandPtr->fptr();
break;
}
// 用上面這樣的好處是....如果當我的按鍵對應的 function 有很多的話
// 不用 function 指標,那我可能就要寫一個很大的 switch 然後一堆 case
}
return 0;
}
int do_a() // do_b() do_c() 類似....
{
printf("你按了 a 這個鍵\n");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.140.43.139
> -------------------------------------------------------------------------- <
作者: jenallen (reborn) 看板: C_and_CPP
標題: Re: [問題] function pointer 的用處
時間: Wed Nov 30 10:50:45 2005
※ 引述《UNARYvvv (有趣生活)》之銘言:
: ※ 引述《openc ()》之銘言:
: : 請教各位先進一下,
: : function pointer 最常用到的地方是在哪裡?
: : 小弟雖然學過,但是卻從未使用過.. @@!
: 舉個例子
: 某 BBS 站,決定使用者按鍵的動作
: 就是利用一個 array of function pointers
: 預先設定好各個字母所要執行的功能,也就是先指定個別的 function pointer
: 例如:
: KeyFunc keys[MAX_KEYNUM] ; // KeyFunc 是一種 function pointer type
: keys['A'] = &keyFuncA; // 可不寫 &
: keys['B'] = &keyFuncB;
: ...
: 這樣子在執行時讀取到一個使用者的按鍵內容
: 經過檢查為合法按鍵值後,便可以直接進行相關的處理動作
: ( *(keys[按鍵值]) )( 引數內容 ); // 可不用寫 * 號
有人整理得很好https://www.newty.de/fpt/index.html :)
我個人最常的使用時機(同時符合才行):
1. 具有一樣輸入輸出但是動作不同的functions
2. 這些functions有共同的使用時機及規範
便會考慮用function pointer將這些不同的動作封裝起來。
這樣做的優點在於可以一個function pointer便將可能所需的各式動作用一致的
表示法來處理(啊,這不就是多型的概念嗎?:P)所以可用簡潔的方式動態地執
行所需的對應動作,以避免用switch case所帶來的大規模修改。
但是缺點也不少,至少我們必須確定function pointer所指的function是我們所
規範的那個function集合才行,不然不小心invoke一個只是符合輸入輸出但卻八
竿子打不著關係的function也是枉然...:)
例子嘛,在用C寫的程式中不少,除了U大的例子外,Unix中的virtual file system,
signal, callback function....很多
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.163.118
... <看更多>