函数指针

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); // printNumber 作为回调函数传递
  printf("\n");
  return 0;
}