在结构中读取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]
答案 0 :(得分:6)
拥有1位int
是一个坏主意,因为它是签名类型。使用签名后,您无法使用1位代表1
,您只能代表0
和-1
,这有点奇怪。
解决方案是使其成为unsigned int implicit : 1
。