本文探讨了 C 语言中未定义行为(UB)的话题,以及 GCC 和 Clang 编译器如何处理静态已知的 UB。作者通过一系列代码示例,展示了编译器在遇到 UB 时可能采取的不同行为,例如插入非法指令导致程序崩溃,或者忽略 UB 并继续执行。文章还讨论了编译器为何不总是对 UB 发出警告,以及 LLVM 和 GCC 在处理 UB 时的不同理念。