函数指针
Tutorial: C与汇编
Category: C语言
Published: 2026-04-07 13:58:26
Views: 20
Likes: 0
Comments: 0
1. 定义函数指针变量: 无法 ++/--
返回类型 (调用约定 *指针变量名)(参数类型列表);
int (__cdecl *pFun)(int, int);
pFun = (int (__cdecl *)(int, int))10;
2. 指向带有参数的函数的指针
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int main()
{
int (*funcPtr)(int, int);
funcPtr = add;
int sum = funcPtr(2, 3);
return 0;
}
3. 作为回调函数的函数指针
#include <stdio.h>
#include <stdlib.h>
void forEach(int *array, size_t size, void (*func)(int)) {
for (size_t i = 0; i < size; i++) {
func(array[i]);
}
}
void printNumber(int num) {
printf("%d ", num);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
size_t arrSize = sizeof(arr) / sizeof(arr[0]);
forEach(arr, arrSize, printNumber);
printf("\n");
return 0;
}