c - 无法在结构中初始化条件变量

标签 c pthreads

为什么我无法在结构中初始化条件变量? 我希望每个节点都有一个条件变量,这样我就可以等待并发出信号,当我添加初始化代码时,它会抛出此错误: 在“=”标记之前应使用“:”、“,”、“;”、“}”或“属性” make: * [trie.o] 错误 1

我尝试在需要时在某个地方(不在结构中)进行初始化,但仍然出现错误,我已经包含了 pthreads.h

struct trie_node {

  pthread_cond_t condition=PTHREAD_COND_INITIALIZER;
};

最佳答案

初始化结构成员时不能使用PTHREAD_COND_INITIALIZER

你必须使用 pthread_cond_init在创建结构实例之后。

实际上,结构定义中根本不能初始化结构成员,不仅仅是这个。

关于c - 无法在结构中初始化条件变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976043/

相关文章:

c - XC8编译器: program returning to beginning of main()

c - Internet Checksum 函数是否移动 8bits

c++ - 在同一循环中集成 pthread_create() 和 pthread_join()

linux - 在 linux 中使用命令行检查单个线程优先级

c - 使用 pthread 互斥体保护变量是否保证它也不会被缓存?

c - 线程只会对数组的第一个分区进行排序(冒泡排序,Pthread)

c - 期待一份声明

c - 如何在 STM32 上启动和停止定时器?

c - 用C中的另一个字符串替换字符串中的char

c - 调用相同函数时的线程问题