0

Haiku オープン ソース プロジェクトの pthread.h の struct _pthread_rwlock で名前のない共用体を見つける必要があります。この課題は、c++ (過去の継承、ポリモーフィズム、およびクラス) に関するある程度の知識を持って開始しましたが、学んだことが私の状況ではまったく役に立たないことがわかりました。ヘッダー ファイルと pthread_rwlock.cpp という名前のソース ファイルを開き、名前のない共用体を探しましたが、どちらのファイルにも共用体がないようです。問題を見つける正しい方法は何でしょうか?

4

1 に答える 1

0

pthreads.h、探している構造は。という名前になりpthread_rwlock_tます。インクルードファイルを逆方向​​にたどると、次のように表示されますsys/types.h

typedef struct  _pthread_rwlock    pthread_rwlock_t;
...
struct _pthread_rwlock {
    __haiku_std_uint32     flags;
    __haiku_std_int32      owner;
    union {
        struct {
            __haiku_std_int32    sem;
        } shared;
        struct {
            __haiku_std_int32    lock_sem;
            __haiku_std_int32    lock_count;
            __haiku_std_int32    reader_count;
            __haiku_std_int32    writer_count;
            void*                waiters[2];
        } local;
    } u;
};

ここにある組合があなたが探している組合だと思います。私が見ているバージョン(d06f5808)の時点で、ユニオンは匿名ではなくなりました。

于 2013-02-26T02:00:34.797 に答える