指向函数返回的指针

时间:2012-03-22 03:27:59

标签: c function pointers syntax

假设以下函数原型:

void *function(int arg)

这是一个指向函数的指针吗?如果是这样,如果返回类型为void,它如何返回一个值?该函数的描述表明它可能返回一个正整数或NULL。由于这是两种不同的“类型”,这是void的原因吗?为了避免类型转换?

5 个答案:

答案 0 :(得分:3)

不,那不是指向函数的指针。它是一个返回void *的函数,也称为通用指针。

指向返回void的函数的指针是:

void (*function)(int arg);

功能不会返回任何内容。

答案 1 :(得分:2)

它不是指向函数的指针。它说它返回一个void指针。返回void *的函数的优点是可以将它强制转换为函数中的任何类型。有关说明,请参阅here

答案 2 :(得分:0)

它不是指向函数的指针;它是一个返回指向void的指针的函数:即一个指向原始内存的无差别指针。返回void的函数的指针是void (*function)(int arg) - 这些括号完全改变了含义。

答案 3 :(得分:0)

void *function(int arg);

不是指向函数的指针。它是函数的原型,返回void *并且具有int参数。

答案 4 :(得分:0)

不,它是一个原型,指定函数function采用单个int参数并返回void *值。

指向函数的指针如下所示:

void *(*fn)(int arg);

这会创建一个指针fn,指向与function属性匹配的函数。