在list_for_each_entry中使用break是否安全?

jea*_*anc 1 c linux-kernel

对一个while/for循环使用break指令是否安全list_for_each_entry(在Linux内核中)?

举例:

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

while循环是否会按预期被破坏或被list_for_each_entry破坏?

Fat*_*ror 9

break 总是只打破最里面的循环,所以外循环不受影响.事实上,要打破多级循环,你必须使用goto.