读取以下结构的pthread库时,将定义以下内容:

 struct ptw32_thread_t_
 {
      ....
      int implicit:1;
      ......
 };

我了解它仅占用1位,然后如何为它赋值,因为激活激活的每个值都分配了溢出错误标志编译会产生错误:
 ptw32_thread_t *sp;
 sp = (ptw32_thread_t *) calloc (1, sizeof(ptw32_thread_t));
 sp->implicit = 1;

 error: overflow in implicit constant conversion [-Werror=overflow]

最佳答案

拥有一个1位的int是一个不好的主意,因为它是一个带符号的类型。使用符号时不能使用1位表示1,只能表示0-1,这有点奇怪。

解决方案是将其设置为unsigned int implicit : 1

09-08 04:19