声明一个包含很多指针的函数

时间:2013-12-08 16:02:11

标签: c

如何将f声明为指向函数的指针(指向指向整数的指针,双精度)到返回指向整数的指针?

我尝试了很多变体,包括:

(int**)(f*)(int**,double)
(**int)(f*)(int**,double)
*(int)(f*)(int**,double)

5 个答案:

答案 0 :(得分:6)

那将是:

int**(*f)(int**,double)

根据cdecl.org表示:

  

声明f作为函数的指针(指向int,double的指针)返回指向int

的指针

我不相信你可以在返回类型周围放置parens,指针到函数部分的*需要位于声明名称的左侧。

答案 1 :(得分:4)

功能签名:

int** func(int**, double);

函数指针声明:

int** (*f)(int**, double);

答案 2 :(得分:2)

答案 3 :(得分:1)

尝试

int** (*f)(int**, double);

答案 4 :(得分:1)

我读了你的描述,将它分成几部分,然后是:

int **     (*f)(  int **,         double)
 ^           ^       ^               ^
 |           |       |               |
 |       pointer to  |               |
 |       function    |               |
 |                   |               |
 |                 pointer to        |
 |                 pointer to        |
 |                 integer           |
 |                                double
 |
 |
return pointer to pointer to integer

实际上这很简单。

你应该阅读 C FAQ on Declarations 它以非常简单和全面的方式解释它们。