日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C语言回调函数随笔

發(fā)布時(shí)間:2025/4/14 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言回调函数随笔 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

簡而言之,回調(diào)函數(shù)就是一個(gè)通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用為調(diào)用它所指向的函數(shù)時(shí),我們就說這是回調(diào)函數(shù)。

?

因?yàn)榭梢园颜{(diào)用者與被調(diào)用者(實(shí)現(xiàn)者)分開,所以調(diào)用者不關(guān)心誰是被調(diào)用者。它只需知道存在一個(gè)具有特定原型和限制條件的被調(diào)用函數(shù)。換句話講,回調(diào)函數(shù)就是允許用戶把需要調(diào)用的方法的指針作為參數(shù)傳遞給一個(gè)函數(shù),以便該函數(shù)在處理相似事件的時(shí)候可以靈活的使用不同的方法。

?

一個(gè)簡單的回調(diào)函數(shù)實(shí)現(xiàn)

  下面創(chuàng)建了一個(gè)sort.dll的動(dòng)態(tài)鏈接庫,它導(dǎo)出了一個(gè)名為 CompareFunction的類型--typedef int (__stdcall *CompareFunction)(const byte*, const byte*),它就是回調(diào)函數(shù)的類型。另外,它也導(dǎo)出了兩個(gè)方法:Bubblesort()和Quicksort(),這兩個(gè)方法原型相同,但實(shí)現(xiàn)了不同 的排序算法。

void DLLDIR __stdcall Bubblesort(byte* array,int size,int elem_size,CompareFunction cmpFunc);

void DLLDIR __stdcall Quicksort(byte* array,int size,int elem_size,CompareFunction cmpFunc);


  這兩個(gè)函數(shù)接受以下參數(shù):

  ·byte * array:指向元素?cái)?shù)組的指針(任意類型)。

  ·int size:數(shù)組中元素的個(gè)數(shù)。

  ·int elem_size:數(shù)組中一個(gè)元素的大小,以字節(jié)為單位。

  ·CompareFunction cmpFunc:帶有上述原型的指向回調(diào)函數(shù)的指針。

例如:

int __stdcall CompareInts(const byte* velem1, const byte* velem2)
{
 int elem1 = *(int*)velem1;
 int elem2 = *(int*)velem2;

 if(elem1 < elem2)
  return -1;
 if(elem1 > elem2)
  return 1;

 return 0;
}

int __stdcall CompareStrings(const byte* velem1, const byte* velem2)
{
 const char* elem1 = (char*)velem1;
 const char* elem2 = (char*)velem2;
 return strcmp(elem1, elem2);
}

如果想進(jìn)行降序排序(大元素在先),就只需修改回調(diào)函數(shù)的代碼,或使用另一個(gè)回調(diào)函數(shù),這樣編程起來靈活性就比較大了。

轉(zhuǎn)載于:https://www.cnblogs.com/rengpiaomiao/p/4463861.html

總結(jié)

以上是生活随笔為你收集整理的C语言回调函数随笔的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。