2012-03-22 16 views
0

次の関数プロトタイプを仮定します。関数戻りへのポインタ

void *function(int arg)

これは関数へのポインタですか?もしそうなら、戻り値の型がvoidの場合、これはどのようにして値を返すことができますか?関数の説明は、正の整数またはNULLを返す可能性があることを示します。これらは2つの異なる「タイプ」なので、それはvoidの理由でしょうか?型キャスティングを避けるには?

+0

正の整数を返すことはできません。ポインタ(NULLポインタかもしれない)を返します。 – Celada

答えて

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); 

これはfunctionの特性と一致する関数を指すポインタfnを作成します。

3

いいえ、それは関数へのポインタではありません。汎用ポインターとも呼ばれるvoid *を返す関数です。

voidはこのことだろう返す関数へのポインタ:関数は何も返さないだろうと

void (*function)(int arg); 

関連する問題