Home >Common Problem >How to implement callback function in C language
The callback function is to implement different functions through a unified interface. The callback function in C language is to call different callback functions in the code according to the different parameters passed
The callback function is a program A function that cannot be called explicitly by members; the callback function is called by passing the address of the callback function to the caller. The use of callback functions is necessary. When we want to implement different content through a unified interface, callback functions are very suitable.
【Recommended tutorial: C language tutorial】
For example, we wrote different display functions for several different devices:
void TVshow(); void ComputerShow(); void NoteBookShow()...等等。
This is because we want to use a unified display function, and we can use the lost function at this time.
void show(void (*ptr)());
When used, different callback functions are called according to the parameters passed in.
Different programming languages may have different syntax. Here is an example of a callback function in C language. One callback function does not take parameters, and the other callback function takes parameters.
#include <stdlib.h> #include <stdio.h> int Test1() { int i; for(i=0; i<30; i++) { printf("The %d th charactor is: %c\n", i, (char)('a' + i%26)); } return 0; } int Test2(int num) { int i; for (i=0; i<num; i++) { printf("The %d th charactor is: %c\n", i, (char)('a' + i%26)); } return 0; } void Caller1( void (*ptr)() )//指向函数的指针作函数参数 { (* ptr)(); } void Caller2(int n, int (*ptr)())//指向函数的指针作函数参数,这里第一个参数是为指向函数的指针服务的, { //不能写成void Caller2(int (*ptr)(int n)),这样的定义语法错误。 (* ptr)(n); } int main() { printf("************************\n"); Caller1(Test1); //相当于调用Test1(); printf("&&&&&&************************\n"); Caller2(30, Test2); //相当于调用Test2(30); return 0; }
The rendering is as follows
The above call is implemented by passing the address of the callback function to the caller, but it should be noted that the callback function with parameters usage.
To implement callbacks, you must first define a function pointer. The definition of function pointers is briefly mentioned here.
For example:
int (*ptr)();
Here ptr is a function pointer, in which the brackets of (*ptr) cannot be omitted,
because the priority of brackets is higher than that of asterisks, so It becomes a function declaration with an integer return type.
Summary: The above is the entire content of this article, I hope it will be helpful to everyone.
The above is the detailed content of How to implement callback function in C language. For more information, please follow other related articles on the PHP Chinese website!