PTHREAD_RECURSIVE_MUTEX_初始值设定项和PTHREAD_RECURSIVE_MUTEX_初始值设定项之间有什么区别?

PTHREAD_RECURSIVE_MUTEX_初始值设定项和PTHREAD_RECURSIVE_MUTEX_初始值设定项之间有什么区别?,c,pthreads,C,Pthreads,静态初始化递归互斥时,它们之间的区别是什么 static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; 及 为什么我要一个而不是另一个?“\u NP”的意思是暗示该功能不可移植。为了保持提示,最好使用“\u NP”版本 除此之外,我认为没有区别。但不是100%确定。您确定PTHREAD\u RECURSIVE\u MUTEX\u初始值设定项存在吗?确实,在我的Ubuntu linux系统上,我的/usr/inc

静态初始化递归互斥时,它们之间的区别是什么

static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER;

为什么我要一个而不是另一个?

“\u NP”的意思是暗示该功能不可移植。为了保持提示,最好使用“\u NP”版本


除此之外,我认为没有区别。但不是100%确定。

您确定
PTHREAD\u RECURSIVE\u MUTEX\u初始值设定项存在吗?确实,在我的Ubuntu linux系统上,我的
/usr/include/pthread.h
文件没有定义没有
\u NP
的版本。但在这里,例如,它被定义为:在第46行。那么,它似乎依赖于实现。
static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;