当程序在 Release Fast 上无法访问时会发生什么? (紫浪)
What happen when program reach unreachable on ReleaseFast? (Zig lang)
我在 Zig Doc 上看到它有未定义的行为。是吗?没有任何方法可以预测代码在无法访问后的行为吗?
就像它正在处理下一行或尝试继续,就像从未有过的无法到达!
就是这样。如果您可以保证代码在任何给定场景中的行为方式,那将是 定义的 行为。
如果您想知道为什么存在未定义的行为,请先参阅 here。
isn't there any way tho predict the behavior of the code after hitting unreachable? like if it's process next line or try to continue like unreachable never been there!
不,否则编译器无法优化那么多。
如果您想控制发生的事情,请不要使用 unreachable
。
记住:当你碰到那条线时,UB 比不可预测性更糟糕。甚至在您到达 UB 点之前,优化器就可能破坏您的程序。
我在 Zig Doc 上看到它有未定义的行为。是吗?没有任何方法可以预测代码在无法访问后的行为吗? 就像它正在处理下一行或尝试继续,就像从未有过的无法到达!
就是这样。如果您可以保证代码在任何给定场景中的行为方式,那将是 定义的 行为。
如果您想知道为什么存在未定义的行为,请先参阅 here。
isn't there any way tho predict the behavior of the code after hitting unreachable? like if it's process next line or try to continue like unreachable never been there!
不,否则编译器无法优化那么多。
如果您想控制发生的事情,请不要使用 unreachable
。
记住:当你碰到那条线时,UB 比不可预测性更糟糕。甚至在您到达 UB 点之前,优化器就可能破坏您的程序。