boat7 发表于 2021-7-11 16:55:18

e30疑惑

#include <stdio.h>

int add(int, int);
int sub(int, int);
int calc(int (*fp)(int, int), int, int);

int add(int num1, int num2)
{
      return num1 + num2;
}

int sub(int num1, int num2)
{
      return num1 - num2;
}

int calc(int (*fp)(int, int), int num1, int num2)
{
      return (*fp)(num1, num2);
}

int main()
{
      printf("3 + 5 = %d\n", calc(add, 3, 5));
      printf("3 - 5 = %d\n", calc(sub, 3, 5));

      return 0;
}


两个标黄部分是不是第一个是函数指针,后一个是指针函数

人造人 发表于 2021-7-11 17:47:49

你标错范围了,应该是这样的,每一个颜色是一个整体
int calc(int (*fp)(int, int), int, int);
int calc(int (*fp)(int, int), int num1, int num2)

人造人 发表于 2021-7-11 17:49:19

C语言复杂声明解析
https://blog.csdn.net/wangweixaut061/article/details/6549768
页: [1]
查看完整版本: e30疑惑