您的位置:首页 > 其它

头文件中结构体互相引用的问题

2017-01-25 18:08 218 查看
先上代码看下错误的例子:

typedef struct _thread{
int       id;                        /* friendly id               */
pthread_t pthread;                   /* pointer to actual thread  */
thpool_handle_t thpool_p;            /* access to thpool          */
} thread_t;

/* Threadpool
* threadpool has many threads, and he should to access each threads, threads pointer array to save all threads pointer */
typedef struct _thpool{
thread_t**   threads;                  /* pointer to threads        */
volatile int num_threads_alive;      /* threads currently alive   */
volatile int num_threads_working;    /* threads currently working */
pthread_mutex_t  thcount_lock;       /* used for thread count etc */
jobqueue*  jobqueue_p;               /* pointer to the job queue  */
} thpool_t, *thpool_handle_t;


编译提示:
./include/thread_pool.h:31:5: error: unknown type name ‘thpool_handle_t’

修改如下解决:

struct _thread;
struct _thpool;
typedef struct _thread thread_t;
typedef struct _thpool thpool_t, *thpool_handle_t;

typedef struct _thread{ int id; /* friendly id */ pthread_t pthread; /* pointer to actual thread */ thpool_handle_t thpool_p; /* access to thpool */ } thread_t; /* Threadpool * threadpool has many threads, and he should to access each threads, threads pointer array to save all threads pointer */ typedef struct _thpool{ thread_t** threads; /* pointer to threads */ volatile int num_threads_alive; /* threads currently alive */ volatile int num_threads_working; /* threads currently working */ pthread_mutex_t thcount_lock; /* used for thread count etc */ jobqueue* jobqueue_p; /* pointer to the job queue */ } thpool_t, *thpool_handle_t;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: