Qia*_*ian 4 c function-pointers shorthand
gcc似乎在告诉我int foo(int (*f)(void))和int foo(int (f)(void))
f指向函数的指针是一样的,它不返回任何参数int.为什么我们可以省略*这里.
不过,我也尝试过int (*p)(void)和int (p)(void).第一个p是函数指针,第二个是函数.
那么,发生了什么?在什么情况下可以省略星号?我在K&R中查找并没有发现任何东西.
引用我的Harbison和Steele副本(第5版,第9.3节):
在参数列表中,隐式地重写类型"返回T的函数"以具有类型"指向函数返回T的指针".
这意味着在形式参数列表的上下文中,它们是等价的.在任何其他情况下,它们都是不同的.
作为一种风格问题,我永远不会忽略*.
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |