比如参数为int 返回int 的函数指针A,写法为typedef int(*A)(int),
如果是要定义一个函数指针B,指向一个参数为int而返回值是函数指针A的话,
比较容易读懂的写法是 typedef A (*B)(int)
如果要把A再展开,typedef int(*A)(int) (*B)(int)这样肯定是错的,因为这里面已经出现了两个变量名
即使去掉A也不行。
我的经验是把typedef int(*A)(int)中的A用(*B)(int)替换就行了,即
typedef int(*(*B)(int))(int) 这样就对了,理解的时候从里往外读,这是一个函数指针B,
指向的函数的参数为int,返回值为int(*)(int)就行了
如果是要定义一个函数指针B,指向一个参数为int而返回值是函数指针A的话,
比较容易读懂的写法是 typedef A (*B)(int)
如果要把A再展开,typedef int(*A)(int) (*B)(int)这样肯定是错的,因为这里面已经出现了两个变量名
即使去掉A也不行。
我的经验是把typedef int(*A)(int)中的A用(*B)(int)替换就行了,即
typedef int(*(*B)(int))(int) 这样就对了,理解的时候从里往外读,这是一个函数指针B,
指向的函数的参数为int,返回值为int(*)(int)就行了