可以列举一下C语言的未定义行为吗
时间: 2024-06-12 15:04:27 浏览: 152
C++未定义行为(undefined behavior)
1. 访问未初始化的变量值。
2. 对一个空指针进行间接引用。
3. 对一个数组进行越界访问。
4. 除以零。
5. 在同一个表达式中多次修改同一个变量的值。
6. 在不同的函数中修改同一个全局变量的值,而不使用同步机制。
7. 使用未初始化的静态变量或函数。
8. 在不同的语句中修改同一个文件指针的值。
9. 递归函数没有正确的基本情况。
10. 使用已经释放的内存。
11. 使用不同类型的指针进行赋值和比较。
12. 使用非法的位操作。
13. 在 switch 语句中没有使用 break 语句。
14. 在函数中没有返回值,但是没有使用 void 类型声明。
15. 使用超出范围的枚举值。
16. 在函数中使用了不兼容的返回类型。
17. 在表达式中使用了未定义的行为,例如使用未初始化的变量进行计算。
18. 在使用指针时没有进行类型转换。
19. 在使用动态内存分配时没有检查分配是否成功。
20. 在使用字符串时没有检查字符串是否为空。
阅读全文