【发布时间】:2021-08-06 15:44:44
【问题描述】:
就像 C 中变量的“除以 0”错误。
int x = 0;
int y;
y = 12/x;
【问题讨论】:
-
问题不清楚。它过于宽泛(运行时错误很多!)。
-
这取决于运行错误程序的嵌入式系统。它因系统而异。不过,其中任何一个的结果都不太可能是好的。
-
对我来说似乎相当清楚 - 当然可以回答 - 我已经准备好了答案。希望 SO 将允许发布正在进行的答案 :-( - 令人沮丧的打字。无论如何,简短的版本:C 没有定义运行时错误处理,执行环境可能会为硬件检测到的问题提供异常处理程序,例如 div-by-zero,支持错误对齐、无效地址等。通常在嵌入式系统中,您负责提供合适的处理程序,默认值通常只是等待看门狗重置的无限循环。
-
@Clifford 我和你一样感到沮丧。有时我会故意发布一个不完整的答案,只是为了发布它,然后在一系列编辑中完成它。我必须权衡读者看到不完整答案的困惑,以及如果我不这样做,我自己就无法完成它的挫败感。 (从理论上讲,这是我的不良行为:如果我知道问题即将结束,可以说我根本不应该回答。)
-
另外,“嵌入式 C”这个问题太宽泛了。固件支持的能力与硬件一样千差万别。 8 针 ATtiny 和双核 ARM 部件之间的巨大差异。
标签: c embedded microcontroller