(编程)未定义行为:在某种编程语言的标准中,对某类操作的结果不作任何保证;程序一旦触发,可能表现为正常运行、输出异常、崩溃,甚至在不同编译器/优化级别下出现完全不同的结果。
/ˌʌndɪˈfaɪnd bɪˈheɪvjər/
Writing past the end of an array is undefined behavior in C.
在 C 语言中,向数组末尾之后写入属于未定义行为。
Because the code relies on undefined behavior, it may pass tests today but fail after a compiler update or optimization change.
由于这段代码依赖未定义行为,它今天可能通过测试,但在编译器更新或优化选项改变后就会失败。
由 undefined(“未被定义的”)+ behavior(“行为/表现”)组成。该术语在计算机语言标准语境中用于强调:标准刻意不规定某些错误或边界情况的结果,以便实现(编译器/硬件)进行优化或保留自由度,但代价是触发时程序不可靠。