我遇到了这句话:
void (*(*x)(void (*[10])(int *)))(int *)
有谁可以告诉我它是什么?
答案 0 :(得分:42)
要自己解决这个问题,请从最里面的括号开始,逐步解决问题。
(*[10])
< ---- 10个指针的数组(*[10])(int *)
< ------指向函数的10个指针的数组,指针指向int
作为其参数(void (*[10])(int *))
< ------指向函数的10个指针的数组,指针指向int
并返回void
(*x)(void (*[10])(int *))
< ------- x
是一个指向一个函数的指针,该函数有一个参数(一个包含10个指向函数的数组,这个函数有一个指向int的指针作为它的参数并返回void
).....
我中途停了下来,但希望这会有所帮助。
答案 1 :(得分:10)
cdecl对这类事情非常有帮助。它说:
声明x作为函数的指针(指向函数的指针的数组10(指向int的指针)返回void)返回指向函数的指针(指向int的指针)返回void
答案 2 :(得分:5)
您可以在此处找到解释:
答案 3 :(得分:3)
答案 4 :(得分:3)
指向函数的指针,该函数具有10个指向函数的数组 具有int *参数并返回类型void作为参数,并返回 指向具有int *参数且返回类型为void的函数的指针。