2012-03-22 167 views
0

假设以下函数原型:函数返回指针

void *function(int arg)

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

+0

它不能返回一个正整数。它返回一个指针(可能是NULL指针)。 – Celada 2012-03-22 03:33:50

回答

2

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

0

它不是指向函数的指针;它是一个函数,返回指向void的指针:即指向原始存储器的未区分指针。指向返回void的函数的指针是void (*function)(int arg) - 这些括号完全改变了含义。

0
void *function(int arg); 

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

0

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

指向一个函数看起来像这样:

void *(*fn)(int arg); 

这产生了指针fn其指向匹配的function的属性的功能。

3

不,这不是指向函数的指针。这是一个返回void *的函数,也称为泛型指针。

的指针,该返回void将是这样一个功能:

void (*function)(int arg); 

而且功能不会返回任何东西。