关于函数指针的理解(指向的函数返回值又是另外一个函数指针)

来源:互联网 发布:opta数据网站 编辑:程序博客网 时间:2024/05/18 01:56
比如参数为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)就行了
原创粉丝点击