gpt4 book ai didi

c - C 中这两个令人困惑的函数指针符号之间的区别?

转载 作者:行者123 更新时间:2023-12-01 12:28:06 25 4
gpt4 key购买 nike

C 中这两种函数指针表示法有什么区别?

void (*a[]())void (*a)()[]

它们是否表示相同 - a 作为指向函数的指针数组 - 或者第二个是否表示指向函数数组的指针?

我应该如何调用这些函数 -说 void (*a[]()) = {swap, add, sub, prod};?

那是否意味着a是一个4个元素的函数指针数组和swap, add, subprod 的地址在 a[0]...a[3] 中。我应该如何调用这些函数,就像这样?

*a[i]()

还是这样?

a[i]()

最佳答案

使用cdecl.org弄清楚这些东西,直到你可以不假思索地去做。

void (*a[]()): 声明一个返回指向 void 指针的函数数组

鉴于

void (*a)()[]: 将 a 声明为指向返回 void 数组的函数的指针

后者无效C。

关于c - C 中这两个令人困惑的函数指针符号之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671270/

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