struct ast_channel *(* const requester)(const char *type, int format, void *data, int *cause);
这条线的含义是什么?
第二个问题:使用
有什么好处static struct hello
{
int a;
chat b;
};
简单地
struct hello
{
int a;
};
另外,static char p[]
和char p[];
之间有什么区别?
答案 0 :(得分:5)
我的C有点生疏:requester是一个指向函数的常量指针,该函数返回指向ast_channel结构的指针。
参见这些文章:
static关键字的含义取决于声明在代码中的显示位置。在函数内部,它表示变量不应该放在堆栈上而是放在数据段中,并且当函数超出范围(即没有运行)时它是持久的。在函数外部,它表示该变量在其所在文件之外是不可访问的。
答案 1 :(得分:4)
答案 2 :(得分:1)
第一个是函数的常量指针的声明(以及定义),它返回指向struct ast_channel
的指针并接受最后一对parantheses中列出的参数。此函数指针名为requester
。
static
的含义实际上取决于上下文。然而,在之前的答案中已对此进行了解释。
答案 3 :(得分:0)
第一行是一个函数指针,类型为ast_channnel。需要提供更多代码以充分解释其用途。是在结构内部定义的吗?如果是这样,它将通过structname-> requester(... args ...)输入。
This tutorial可能会帮助您理解这一点。其他人已经提供了链接,以找出“静态”意味着什么。
答案 4 :(得分:0)
cdecl.org
是你的朋友:
struct ast_channel *(* const requester)(const char *, int , void *, int *)
- 将请求者声明为const指向函数的指针(指向const char的指针,int,指向void的指针,指向int的指针)返回指向struct ast_channel的指针