gaa*_*kam 1 c mutex initialization pthreads
#include <pthread.h>
pthread_mutex_t* mut;
int main()
{
mut = PTHREAD_MUTEX_INITIALIZER;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码吐出来了error: expected expression before ‘{’ token.
#include <pthread.h>
pthread_mutex_t* mut = PTHREAD_MUTEX_INITIALIZER;
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
上面的代码吐出警告:标量初始化器周围的括号
那么我应该如何初始化互斥锁呢?
这是一个类型错误,您应该使用:pthread_mutex_t而不是pthread_mutex_t*:
pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
Run Code Online (Sandbox Code Playgroud)
为什么编译器抱怨的原因是试图分配的这个宏扩展PTHREAD_MUTEX_INITIALIZER到指针:
{ { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
Run Code Online (Sandbox Code Playgroud)
通过纠正的方法,您可以传递到&mut您需要的任何地方pthread_mutex_t*.
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |