gpt4 book ai didi

c - 我应该如何初始化 pthread 互斥量?

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:42 26 4
gpt4 key购买 nike

#include <pthread.h>

pthread_mutex_t* mut;

int main()
{
mut = PTHREAD_MUTEX_INITIALIZER;
}

上面的代码吐出error: expected expression before ‘{’ token

#include <pthread.h>

pthread_mutex_t* mut = PTHREAD_MUTEX_INITIALIZER;

int main()
{

}

上面的代码发出警告:标量初始值设定项用大括号

那么我应该如何初始化互斥量呢?

最佳答案

这是一个类型错误,你应该使用:pthread_mutex_t 而不是 pthread_mutex_t*:

pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;

编译器提示的原因是它试图将 PTHREAD_MUTEX_INITIALIZER 的这个宏扩展分配给一个指针:

{ { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }

使用更正的方法,您可以在需要pthread_mutex_t* 的任何地方传递&mut

关于c - 我应该如何初始化 pthread 互斥量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com