提问人:wimalopaan 提问时间:8/23/2023 更新时间:8/23/2023 访问量:52
MCU C++ 程序具有无休止的循环,没有副作用 UB?
MCU C++ programm with endless-loop without side-effects allways UB?
问:
以下代码
int main() {
while(true);
}
是 C++ 中的 UB。但这是 MCU 编程中的常见做法:存在一个无休止的循环,所有工作都在 ISR(中断服务例程)中完成。main()
问题是,如果在
void ISR() {
// side-effects
}
int main() {
while(true);
}
由于 UB,可以删除无休止的循环。在大多数 MCU 中,这会导致 MCU 重新启动。
或者这只是不符合标准的 C++ 代码,因为它包含一个 ISR:C++-Standard 没有提到 ISR,它只提到信号处理程序安装程序。signal()
答: 暂无答案
评论
volatile int i;
while (true) i = 42;
main
main