我的 C 源代码有很多未初始化的变量。代码在RHEL 6.4操作系统上。
有没有办法找到所有未初始化的变量?
最佳答案
从数学意义上来说,找到所有是不可能的(至少没有误报)。但是,有一些工具可以帮助找到其中的一些:
- 打开编译器警告。对于
gcc
,这将是-Wuninitialized
、-Winit-self
和-Wmaybe-uninitialized
。请注意,您将需要尝试使用不同级别的优化;您将在不同的-O
级别收到不同的警告。请注意,-Wmaybe-uninitialized
(顾名思义)可能会产生误报。 - 对于未初始化的内存(如
malloc
等),可以使用valgrind
。这实际上需要运行程序。 - 静态检查器,例如 splint . (感谢 Andy Lester 的建议。)
关于linux - 如何在 Linux 上的 C 中查找未初始化的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502614/