pthread_t在android和linux中

pthread_t在android和linux中,android,c,linux,pthreads,android-source,Android,C,Linux,Pthreads,Android Source,我不熟悉安卓系统。签入android pthread_t被定义为typedef long int pthread_t,我不确定它在Linux中是如何定义的。如果它被定义为本机数据类型,并且它与android不同,那么为什么会有这种差异呢?它在bits/pthreadtypes.h中定义为unsigned long int-它是线程描述符,但为什么它对您很重要呢?对于不同的平台可能有不同的要求,并且本机类型在不同的实现中是不同的,因此,使用typedef是有意义的 例如,long在64位Windo

我不熟悉安卓系统。签入android pthread_t被定义为typedef long int pthread_t,我不确定它在Linux中是如何定义的。如果它被定义为本机数据类型,并且它与android不同,那么为什么会有这种差异呢?

它在bits/pthreadtypes.h中定义为unsigned long int-它是线程描述符,但为什么它对您很重要呢?

对于不同的平台可能有不同的要求,并且本机类型在不同的实现中是不同的,因此,使用typedef是有意义的


例如,
long
在64位Windows上是32位,但在64位Linux上是64位。

typedef unsigned long int pthread\t;一些版本的红帽,不确定到底是哪个。我无法在工作中检查,但我认为可能是一样的。我刚刚检查了我登录的服务器。你的问题是“为什么安卓
typedef
缺少
unsigned
对吗?如果我没弄错的话?因为Linux中的
typedef unsigned long int pthread_t
和Android Header中的
typedef unsigned long int pthread_t
我已经将windows版本代码移植到Linux,在Linux中我使用了typedef unsigned long int pthread_t;因此,相同的can代码可用于windows和linux。现在我想移植到android,本想使用相同的typedef,但却向我显示了错误!。你自己在
typedef
?您应该使用头,也可以为Windows创建自己的头。在Windows版本代码中,无论在何处使用threadid,都将其定义为unsigned long int,因此,我没有使用两组代码,而是为linux键入defined unsigned long int。我几乎可以肯定它取决于实现,因此在库更新之间不能依赖于它保持不变。理论上,它也可以是指针。我更喜欢将自己的类型定义为pthread_t或目标操作系统提供的任何其他类型,在操作系统中标识ifdef。