当程序在 ReleaseFast 上无法访问时会发生什么? (字郎)

问题描述

我在 Zig Doc 上读到它有未定义的行为。是吗?在达到无法访问后,没有任何方法可以预测代码的行为吗? 就像是处理下一行或尝试继续像无法访问一样从未存在过!

解决方法

就是这样。如果您可以保证代码在任何给定场景中的行为方式,那就是定义行为。

如果您想知道未定义行为存在的原因,请参阅 here 以开始。

,

在遇到无法访问的情况后,没有任何方法可以预测代码的行为吗?就像是处理下一行或尝试继续像无法访问一样从未存在过!

不,编译器无法优化。

如果您想控制发生的事情,切勿使用 unreachable

请记住:当你碰到那条线时,UB 比不可预测性更糟糕。优化器甚至可能在您到达 UB 之前就中断您的程序。