私は私のOSの本でこのコードに出くわしました:
void *foo()
{
// does something
pthread_exit(NULL);
}
の意味は何void *foo
ですか?それは、関数が型の何かへのポインターを返すことを意味しますvoid
か?
私は私のOSの本でこのコードに出くわしました:
void *foo()
{
// does something
pthread_exit(NULL);
}
の意味は何void *foo
ですか?それは、関数が型の何かへのポインターを返すことを意味しますvoid
か?
いいえ、それは関数が型指定されていない型のポインタを返すことを意味します- void*
。
これは「汎用」ポインタ型です。データへの任意のポインタをにキャストしvoid*
て、呼び出し元に戻すことができます。ただし、ポインターを逆参照するには、ポインターを非voidポインター型(、、、など)にキャストする必要がint*
ありlong*
ますchar*
。
void *
あるタイプへのポインタを返すことを意味します。どちらが指定されていません。使用するために、ポインタは適切なタイプにキャストされてから使用されます。それvoid *foo
は単に間隔の問題であるという事実。
この説明をチェックしてください