这个c代码中的clever1和goo_ptr是什么意思?

bxgwgixi  于 2022-12-03  发布在  Go
关注(0)|答案(1)|浏览(100)
int (*clever1(int (* (*goo_ptr)(int, int, int (*)(int, int), int(*)(int, int)))(int, int), int a, int b, int (*a_fptr)(int, int), int(*b_fptr)(int, int) ))(int, int) {
   return goo_ptr(a,b,b_fptr,a_fptr);
}

clever1的类型是什么?goo_ptr的类型是什么?我看不懂代码。

u3r8eeie

u3r8eeie1#

clever1是一个函数,它返回一个指向函数的指针。返回的函数返回一个int,并接受两个int作为参数。
clever1函数有5个参数-goo_ptrabb_fptra_fptr
goo_ptr是一个指向函数的指针,该函数返回一个指向函数的指针。返回的函数返回一个int,并接受两个int作为参数。goo_ptr指向一个接受4个参数的函数。前两个参数的类型为int,最后两个是指向返回int并接受两个相同类型int的参数的函数的指针。
和都只是一个。
a_fptrb_fptr都是指向返回int并将两个int作为参数的函数的指针。
看起来像是这里的一个常见主题-取两个int,返回一个int

相关问题