【发布时间】:2012-11-12 18:03:36
【问题描述】:
我们被分配了对 Linux 内核代码进行一些修改并重新编译的任务。我很难弄清楚这段代码行是做什么的:
p->time_slice = (current->time_slice + 1) >> 1;
更准确的说,为什么末尾有“>> 1”?
【问题讨论】:
-
因为此代码实现的算法指定该值应向右移动一位。
-
为什么人们不赞成这个问题? bks正在努力学习;这是课堂作业,他可能还在学习 C。提问是一个很好的方法。告诉他不要破解 Linux 内核并否决这个问题对任何人都没有帮助。
-
@BrianCampbell 不要误会我的意思,但是
>>运算符不是在任何像样的 C 教程中解释的吗? -
@H2CO3 也许;虽然如果你不做一些玩弄有点模糊,所以我可以想象有些人可能会掩盖它,或者如果他们没有上下文来理解为什么他们第一次过去时它很重要,那么有人学习不记得它它。无论如何,这个问题并不清楚,这是很难搜索的,因为大多数搜索引擎不能很好地处理特殊字符。对问题投反对票并侮辱提出问题的人是卑鄙的,没有帮助。
-
好的,我真的不明白关闭这个问题的人。如果这个问题太本地化了,那么这个网站上的几乎每个问题都太本地化了。问“这里有一些我不明白的语法,这是什么意思?”不是一个特别本地化的问题;答案中的语法和解释适用于任何 C 代码。他碰巧在 Linux 内核的上下文中提出这个问题的事实是无关紧要的。为什么人们觉得有必要否决初学者提出的完美问题?我们是来提供帮助的,而不是为了羞辱人们到别处寻求帮助。
标签: c linux linux-kernel operating-system