1. 程式人生 > >C語言回撥函式一個簡單的例子

C語言回撥函式一個簡單的例子

原文地址:http://blog.csdn.net/zgrjkflmkyc/article/details/9198519

回撥函式在linux核心或是微控制器上應用得太多,由此也可以大致判斷,一個初學者和有個有經驗的區別。我轉寫在這兒,希望更多的人能夠看到,一起進步!!!!

回撥函式通俗的解釋:

     普通函式:你所寫的函式呼叫系統函式,你只管呼叫,不管實現。

     回撥函式:系統呼叫你所寫的函式,你只管實現,不管呼叫。

以下是使用C語言實現回撥函式的一個例子:


  1. #include <stdio.h>
  2. void PrintNum(int n);  
  3. void ShowNum(
    int n,void (* ptr)());  
  4. void PrintMessage1();  
  5. void PrintMessage2();  
  6. void PrintMessage3();  
  7. void ShowMessage(void (* ptr)());  
  8. int main(){  
  9.    ShowNum(11111,PrintNum);  
  10.    ShowNum(22222,PrintNum);  
  11.    ShowMessage(PrintMessage1);  
  12.    ShowMessage(PrintMessage2);  
  13.    ShowMessage(PrintMessage3);  
  14. }  
  15. void PrintNum(int n){  
  16.    printf("Test1 is called,the number is %d\n",n);  
  17. }  
  18. void ShowNum(int n,void (* ptr)()){  
  19.    (* ptr)(n);  
  20. }  
  21. void PrintMessage1(){  
  22.    printf("This is the message 1!\n");  
  23. }  
  24. void PrintMessage2(){  
  25.    printf("This is the message 2!\n");  
  26. }  
  27. void PrintMessage3(){  
  28.    printf("This is the message 3!\n");  
  29. }  
  30. void ShowMessage(void (* ptr)()){  
  31.     (* ptr)();  
  32. }  

相關推薦

C語言函式一個簡單例子

原文地址:http://blog.csdn.net/zgrjkflmkyc/article/details/9198519 回撥函式在linux核心或是微控制器上應用得太多,由此也可以大致判斷,一個初學者和有個有經驗的區別。我轉寫在這兒,希望更多的人能夠看到,一起進步!!

C語言函式熟練—使用方法(構建程式框架方便好用)

通俗點不行嗎?啊,不行嗎?老外把國人玩的都不是人了。國人還自己玩自己。非把一個簡單的東西複雜化。叫那麼難理解!!窩裡鬥。。。。。。典型!!!!!!!! 不說那麼複雜的,誰是狗屎,豬屎。就說怎麼用回撥。使用步驟: 1.寫一個函式A,A裡面有一個引數是個指標函式 比如: int shao(in

C語言——函式

C語言——回撥函式 宗旨:技術的學習是有限的,分享的精神是無限的。          如果引數是一個函式指標,呼叫者可以傳遞一個函式的地址給實現者,讓實現者去呼叫它,這就是回撥函式。 void func(void (*f)(void*), void *p) 提供一個回撥

C 語言函式

1.回撥函式:回撥函式是指 使用者自己定義一個函式,實現這個函式的程式內容,然後把這個函式(入口地址)作為引數傳入別的函式中,由別的函式在執行時來呼叫的函式。函式是你實現的,但由別人(或系統)的函式在執行時通過引數傳遞的方式呼叫,這就是所謂的回撥函式。簡單來說,就是由別人的函式執行期間來回調你實現的

c語言函式 -----qsort

       回撥函式就是一個通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回撥函式。回撥函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由另外的一方呼叫的,用於

C語言函式的定義和寫法

1 定義和使用場合 回撥函式是指 使用者自己定義一個函式,實現這個函式的程式內容,然後把這個函式(入口地址)作為引數傳入別人(或系統)的函式中,由別人(或系統)的函式在執行時來呼叫的函式。函式是你實現的,但由別人(或系統)的函式在執行時通過引數傳遞的方式呼叫,這就是所謂的回撥函式。簡單來說,就是由別人的函式

一文搞懂C語言函式

什麼是回撥函式我們先來看看百度百科是如何定義回撥函式的:回撥函式就是一個通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回撥函式。回撥函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由

函式一個例子

什麼是回撥函式? 回撥函式就是函式形參中包含一個函式指標,實現的時候這個函式指標可以指向它的實現函式。這樣就可以實現,定義函式,讓回撥函式來呼叫,呼叫和呼叫者分離了。 舉個例子: typedef int(*callbackFun)*(char *p)  //定一個回撥函式模

c函式與java中抽象函式,介面函式,抽象類簡單理解

先了解c語言的回撥函式,舉個簡單例項步步深入,比如A程式提供給B程式使用,但是A想要呼叫B的程式碼,這樣各自不同功能由B實現即可。 例項1A: extern int get_B_data(); void A_data_handle(){ printf("%d\n",get

C語言-

callback     回撥函式是通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回撥函式。回撥函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由另外的一方呼叫的,用於對該

關於 C#呼叫c庫,將C#的byte[]傳入C庫的方法和將C庫的char*向上傳入C#的函式byte[] 的方法

需求         使用C#開發,因某種原因,寫了C庫Dll,使用C#抓圖資料傳入C,將C庫收到的圖片資料向上傳入C#回撥函式。   當前現狀         C#中將byte[]轉換成I

C++ | callback函式函式名做引數傳遞

 在js中的回撥函式已經是隨處可見了,像下面這樣 // js callback demo function foo(value){ console.log(value) } function inject(callback){ var value = 'hello!

C++學習 C/C++之函式

 在理解“回撥函式”之前,首先討論下函式指標的概念。 函式指標 (1)概念:指標是一個變數,是用來指向記憶體地址的。一個程式執行時,所有和執行相關的物件都是需要載入到記憶體中,這就決定了程式執行時的任何物件都可以用指標來指向它。函式是存放在記憶體程式碼區域內的,它們同樣有地

多個函式簡單用法

#include <iostream> using namespace std; typedef int (*DEV_MSG_CALLBACK)(char *msg); //int(*CallBack)(char *p):這個函式有一個返回值,型別為int //DEV_MSG_CALLB

函式簡單說明(註釋中已經詳細說明)

第一部分基本的回撥函式寫 // callback.cpp : 定義控制檯應用程式的入口點。 // 回撥函式就是一個通過函式指標呼叫的函式 // #include "stdafx.h" #include <iostream> void OutputSchedu

c++ 註冊函式研究

一 何為註冊回撥     註冊回撥簡單解釋就是一個高層呼叫底層,底層再回過頭來調用高層,這個過程就叫註冊回撥, 連線高層和底層就叫註冊回撥函式。高層程式C1呼叫底層程式C2,而在底層程式C2 又呼叫了高層程式C2的callback函式,那麼這個callback函式對於高層

python如何呼叫C, 如何註冊成C函式(python後臺程式常用方法)

最近做一個專案,分析視訊內容,用C語言開發,需要執行在linux伺服器後臺,被python呼叫,並且實時返回進度資訊; 其實是python後臺程式常用方法: C開發完成底層的功能,python直接把C當做python模組進行呼叫。 需要做兩個工作: python能呼叫C

C++基礎——函式

回撥函式就是一個通過函式指標呼叫的函式(函式指標的一種用法)。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回撥函式。 寫一個函式,讓系統呼叫你

android jni c語言java

上一篇介紹了 java呼叫c方法返回值,今天總結下c呼叫java。 大體說下步驟,第一步是 找到class,第二步找到方法,第三步是env指標 進行呼叫。類似於反射。 下面詳細說一下。 書寫java原生代碼,呼叫c方法,並且書寫提供給c語言呼叫的java

函式簡單例子 C語言

#include <stdio.h> typedef void (*CallBackFun)(char *str); void CallBackFunA(char *ptr) { p