C語言函式指標與回撥函式使用方法

扣德爾發表於2020-11-24

函式指標

函式指標:指向函式的指標變數

宣告函式指標變數格式:

<返回值>(*<指標變數名稱>)(<引數型別>)

示例:

int sum(int x,int y) {
	return x + y;
}

//main函式內執行
int (*p_sum)(int,int);//函式指標變數宣告
p_sum = sum;
printf("%d",p_sum(1,2));

void型別無參函式示例:

sayHello(){
	printf("HELLO");
}

//main函式內執行
void (*p_sayHello)();//或者void(*p_sayHello)(void)
//呼叫函式指標
p_sayHello();

類似Kotlin這種可以函數語言程式設計的語言,很像這種函式指標的操作,可以將函式賦值給變數;Kotlin可以用函式作為回撥函式,而C語言也可以做到

回撥函式

callBack函式作為sum函式的實參,sum函式內部處理完資料後呼叫函式指標(p_callback),將資料返回出去,一般回撥函式是有引數的

示例:

#include <stdio.h>

void sum(int x, int y, void(*p_callback)(int)) {
	//處理資料
	int r = x + y;
	//將結果回撥出去
	p_callback(r);
}

//回撥函式
void callBack(int r) {
	//列印回撥回來的資料
	printf("結果值為 :%d", r);
}

int main() {

	sum(1, 2, callBack);

	return 0;
}

相關文章