linux - 如何在 Linux 上的 C 中查找未初始化的变量?

标签 linux c

我的 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/

相关文章:

c - TCP 客户端无法将字符串发送到服务器

linux - 在 linux 上通过 scilab 进行串行通信

c - GCC优化和调试

c - 在 C 中预定义结构

php - 安装 php* 与 mysql-server 冲突

linux - linux系统中的低cpu空闲时间

c++ - 我如何知道哪个函数或文件以及哪一行调用了函数?

c++ - 如何正确地将指向 blob 的 void 指针转换为结构指针?

linux - Komodo IDE FTP(ASCII,二进制)行尾字符

c - 在C中修改文本文件的内容