私は私の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は単に間隔の問題であるという事実。
この説明をチェックしてください