91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言回調函數怎么用

發布時間:2021-09-25 09:13:00 來源:億速云 閱讀:166 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“C語言回調函數怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C語言回調函數怎么用”這篇文章吧。

一、什么是回調函數

因為在程序中,我們有很多的庫函數,我們也有很多的上層函數,為了增加程序的靈活性,我們就將一些函數指針作為參數傳遞到函數里面去。
說的粗糙一點,就是將一個函數作為另一個函數的函數參數。
調用回調函數我們需要一個中間函數進行過渡。
這個中間函數的參數是一個函數指針。

二、簡單的回調函數

我們來寫一個簡單的例子,幫助我們理解:

#include <stdio.h>

/*回調函數1*/
void callBack1(void)
{
	printf("this is callback1\n");
}
/*回調函數2*/
void callBack2(void)
{
	printf("this is callback2\n");
}
/*中間函數*/
/*參數是一個函數指針*/
void calc(void (*func)())
{
	func();
}

int main()
{
	calc(callBack1);
	printf("************\n");
	calc(callBack2);
	
	return 0;
}

C語言回調函數怎么用

分析一下這個簡單的回調函數的運用。
函數從main函數開始運行,我們將回調函數(callBack)作為一個參數傳遞到中間函數(calc)里面,中間函數通過函數指針的方式來接受,通過傳入不同的回調函數((callBack1)、(callBack2))來執行不同的結果。

三、帶參數的回調函數

上面的程序簡單的說明了不帶參數的回調函數,那么帶參數的回調函數我們也可以依葫蘆畫瓢。

#include <stdio.h>

/*回調函數1*/
int  callBack1(int a,int b)
{
	printf("this multiplication:\n");
	return a * b;
}
/*回調函數2*/
int  callBack2(int a, int b)
{
	printf("this addition:\n");
	return a + b;
}
/*中間函數*/
/*參數是一個函數指針*/
int  calc(int a,int b,int (*func)())
{
	func();
}

int main()
{
	int p;
	int q;
	p = calc(20,20, callBack1);
	printf("%d\n",p);
	printf("*********\n");
	q = calc(20, 20, callBack2);
	printf("%d\n", q);
	
	return 0;
}

C語言回調函數怎么用

在工作中我們的回調函數肯定不會這么簡單,但是回調函數的作用是不去改變底層的程序,通過獲得底層的數據來得到不同的數據。這樣我們的上層會有很多變化,但是我們的底層程序不會動。

以上是“C語言回調函數怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深水埗区| 南部县| 商都县| 通江县| 桑植县| 资中县| 彭山县| 芮城县| 牟定县| 泽州县| 大方县| 秀山| 石门县| 合阳县| 泗阳县| 库尔勒市| 临沭县| 邢台县| 汪清县| 汉寿县| 钟祥市| 都匀市| 田东县| 思茅市| 万山特区| 安陆市| 平原县| 灯塔市| 祁门县| 望都县| 乌恰县| 新兴县| 德化县| 乌什县| 修水县| 青浦区| 同心县| 金乡县| 普陀区| 开远市| 延边|