当前位置: 技术问答>linux和unix
[请教]有关原码
来源: 互联网 发布时间:2015-06-25
本文导语: function{ ...... prepare_to_switch(); //? { //? struct mm_struct *mm = next->mm; struct mm_struct *oldmm = prev->active_mm; if (!mm) { if (next->active_mm) BUG(); next->active_mm = oldmm; atomic_inc(&oldmm->mm_count); enter_lazy_tlb(oldmm, next, t...
function{
......
prepare_to_switch(); //?
{ //?
struct mm_struct *mm = next->mm;
struct mm_struct *oldmm = prev->active_mm;
if (!mm) {
if (next->active_mm) BUG();
next->active_mm = oldmm;
atomic_inc(&oldmm->mm_count);
enter_lazy_tlb(oldmm, next, this_cpu);
} else {
if (next->active_mm != mm) BUG();
switch_mm(oldmm, mm, next, this_cpu);
}
if (!prev->mm) {
prev->active_mm = NULL;
mmdrop(oldmm);
}
}
......
}
贴了段原代码在上面
意思是说,在一个function中出现了两个省略号之间的代码段,
如果prepare_to_switch()是函数调用的话(因为在他后面跟有分号“;”),那么紧随其后的一对花括号是什么意思呢??好象没什么用处吧
......
prepare_to_switch(); //?
{ //?
struct mm_struct *mm = next->mm;
struct mm_struct *oldmm = prev->active_mm;
if (!mm) {
if (next->active_mm) BUG();
next->active_mm = oldmm;
atomic_inc(&oldmm->mm_count);
enter_lazy_tlb(oldmm, next, this_cpu);
} else {
if (next->active_mm != mm) BUG();
switch_mm(oldmm, mm, next, this_cpu);
}
if (!prev->mm) {
prev->active_mm = NULL;
mmdrop(oldmm);
}
}
......
}
贴了段原代码在上面
意思是说,在一个function中出现了两个省略号之间的代码段,
如果prepare_to_switch()是函数调用的话(因为在他后面跟有分号“;”),那么紧随其后的一对花括号是什么意思呢??好象没什么用处吧
|
{}用于定义程序段,也可以认为限定作用域。根据C语言的规定,局部变量必须在程序段的开头定义,这样,大括号{}看起来没有什么作用,但是这里必不可少。
|
使用花括号的目的是使得struct mm_struct *mm和struct mm_struct *oldmm可以仅在此花括号作用域中起作用。花括号可以限定作用域。
|
C语言的syntax.变量只能定义在花括号后面。