【问题标题】:pointer to an array of pointers to functions taking int argument and returning void指向一个指针数组的指针,这些指针指向采用 int 参数并返回 void 的函数
【发布时间】:2017-02-14 21:53:33
【问题描述】:

我写的代码有效吗?我正在尝试编写一个表达式,它是指向函数指针数组的指针,该函数接受单个参数 int 并返回 void。所以函数的返回类型为 void。但我不确定我的(**[]) 表达式是否有效,还是应该写成(*(*[]))?因为后者意味着指向函数的指针数组,它是指向函数的指针。

void(*(*[])(int));

【问题讨论】:

  • 这不是表达式。即使类型名称的语法正确,类型名称也不是表达式。显示更多有关您在何处使用此代码的上下文会很有帮助。
  • 您是在尝试编写类型表达式,例如可以在强制转换运算符中使用,还是在尝试声明一个具有这种类型的对象?
  • Tcdecl.org 网站对英C之间的翻译非常有帮助
  • 非常感谢约翰。

标签: c pointers function-pointers


【解决方案1】:

这样做

 typedef void (*fptr)(int)

 fptr array[10];

这比试图将其全部转换为一种语法更清晰。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2021-02-07
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多