Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为指向函数的指针编写getter_C_Encapsulation - Fatal编程技术网

C 为指向函数的指针编写getter

C 为指向函数的指针编写getter,c,encapsulation,C,Encapsulation,我有以下问题: “列表c” 从结构返回“析构函数”的函数的签名是什么? 例如,返回“size”的函数的签名是: “析构函数”的情况如何。这将起作用: typedef void (*Destructor)(void *data); Destructor getDestructor(); 这将有助于: typedef void (*Destructor)(void *data); Destructor getDestructor(); 一般形式: void (*get_destructor())

我有以下问题:

“列表c”

从结构返回“析构函数”的函数的签名是什么? 例如,返回“size”的函数的签名是:

“析构函数”的情况如何。

这将起作用:

typedef void (*Destructor)(void *data);
Destructor getDestructor();
这将有助于:

typedef void (*Destructor)(void *data);
Destructor getDestructor();
一般形式:

void (*get_destructor())(void *data);
确切的形式取决于get_析构函数应该采用的参数。如果只是从struct nmlist_s的实例返回析构函数指针,那么

void (*get_destructor(struct nmlist_s list))(void *data);
一般形式:

void (*get_destructor())(void *data);
确切的形式取决于get_析构函数应该采用的参数。如果只是从struct nmlist_s的实例返回析构函数指针,那么

void (*get_destructor(struct nmlist_s list))(void *data);

谢谢,语法有点奇怪,但这就是我要找的。@nomemory:语法是归纳的。它的意思是:
get\u析构函数
是这样的:当应用一些参数时(因此
get\u析构函数
是一个函数),它返回一些可以应用的东西(函数返回一个指针)。该
*
的结果是可以应用类型为
void*
的参数(指针是指向函数的指针)。应用该参数将生成类型为
void
,即nothing的内容。总而言之:
get\u destructor
是一个函数,它接受一些未指定的参数,并返回指向函数的指针,该函数接受
void*
,但不返回任何内容。@Thomas Pornin,感谢您的澄清,现在事情清楚了。谢谢,语法有点奇怪,但这就是我要找的。@nomemory:语法是归纳的。它的意思是:
get\u析构函数
是这样的:当应用一些参数时(因此
get\u析构函数
是一个函数),它返回一些可以应用的东西(函数返回一个指针)。该
*
的结果是可以应用类型为
void*
的参数(指针是指向函数的指针)。应用该参数将生成类型为
void
,即nothing的内容。总而言之:<代码> GETYAXPLANTROR 是一个函数,它需要一些未指定的参数,并返回一个函数,它使用了<代码> Value*/Cuth>并返回任何东西。@ Thomas Pornin,谢谢您的澄清,现在事情已经很清楚了。C++中尝试编写C++吗?我不羡慕你。@ T.E.D.实际上是非常令人心旷神怡的:)C++中试图写C++?我并不羡慕你。@T.E.D.实际上非常令人神清气爽:)。