gpt4 book ai didi

c - 那么函数指针的*可以省略吗?

转载 作者:太空狗 更新时间:2023-10-29 15:24:39 24 4
gpt4 key购买 nike

gcc 似乎告诉我 int foo(int (*f)(void))int foo(int (f)(无效))f 是一个指向不带参数返回 int 的函数的指针。为什么我们可以省略这里的*

但是,我也尝试了 int (*p)(void)int (p)(void)。第一个 p 是函数指针,第二个是函数。

那么,这是怎么回事?什么情况下可以省略星号?我在 K&R 中查找,但一无所获。

最佳答案

引用我的 Harbison 和 Steele(第 5 版,第 9.3 节)的副本:

In parameter lists, a type "function returning T" is implicitly rewritten to have type "pointer to function returning T".

这意味着在形式参数列表的上下文中,它们是等价的。在任何其他情况下,它们都是不同的。

作为风格问题,我绝不会省略 *。

关于c - 那么函数指针的*可以省略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com