【问题标题】:Pointer to function as parameter, using typedef指向函数作为参数的指针,使用 typedef
【发布时间】:2011-09-17 14:16:39
【问题描述】:

我正在尝试创建使用指向函数的指针作为参数的代码,并且我必须使用 typedef。 我不是C专业的。感觉就像我到了那里,但我似乎找不到函数指针语法的良好解释。

我有一个函数fillArray:

long fillArray(long *array, int x, int y) {
//
}

然后我想创建一个指向这个函数的指针的 typedef:

typedef long (*fArray)(long, int, int);

fArray pFill = fillArray;

我想将此 pFill 提供给一个名为 doThis() 的函数:

int doThis (fArray pFill) {
  return 0;
}

并使用以下方法调用它:

int y = doThis(pFill);

我做错了什么?

【问题讨论】:

    标签: c function pointers


    【解决方案1】:

    你的 typedef 需要是:

    typedef long (*fArray)(long *, int, int);
                                ^
    

    【讨论】:

    • 太棒了!有点蹩脚,我自己没有看到这个。谢谢!
    【解决方案2】:

    您的fillArray 函数接受long * 作为第一个参数,您忘记了* 进入typedef

    typedef long (*fArray)(long *, int, int);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 2016-01-03
      • 2011-03-04
      相关资源
      最近更新 更多