读取以下结构的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
。