从Linux代码反思整形以及无符号整形变量的知识
?
今日,在分析Linux调度器的过程中。
在sched.c中的init_cfs_rq中,看到了如下一条奇怪的赋值语句。
?
static?void?init_cfs_rq(struct?cfs_rq?*cfs_rq,?struct?rq?*rq)
{
????cfs_rq->tasks_timeline?=?RB_ROOT;
????INIT_LIST_HEAD(&cfs_rq->tasks);
#ifdef?CONFIG_FAIR_GROUP_SCHED
????cfs_rq->rq?=?rq;
????/*?allow?initial?update_cfs_load()?to?truncate?*/
#ifdef?CONFIG_SMP
????cfs_rq->load_stamp?=?1;
#endif
#endif
????cfs_rq->min_vruntime?=?(u64)(-(1LL?<<?20));
#ifndef?CONFIG_64BIT
????cfs_rq-&