奇思妙想 · 2024年 3月 22日 0

如何理解C语言的未定义行为?

24 次浏览

C语言自由灵活,未定义行为其实是标准对实现的放宽,即,一种行为如果可能产生错误,那标准不必要规定会有什么错,是内存泄漏、程序终止或者其他诡异的行为,只需要提示此行为未定义,具体交给实现。这种做法是标准甩锅的行为,也是标准很理性的行为。更加安全的编程语言,如Java/C#都尽可能规避未定义行为,因为异常将会在预期中抛出。