3

对循环使用中断指令是否安全,该while/for循环位于list_for_each_entry指令内部(在 Linux 内核中)?

举例:

list_for_each_entry(obj1, vars, list) {
    ...
    while(j < k)
    {
        ...
        if(k >= MAX_ITERATIONS) break; // break the while
        ...
    }
    ...
}

while 循环会按预期中断还是会list_for_each_entry中断?

4

1 回答 1

11

break 总是只跳出最内层的循环,所以外层的循环不受影响。事实上,要打破多层次的循环,你必须使用goto.

于 2012-07-23T16:22:44.963 回答