我的C源代码有许多未初始化的变量。代码在RHEL 6.4操作系统上。
有没有办法找到所有未初始化的变量?
答案 0 :(得分:10)
从数学意义上来说,找到所有是不可能的(至少没有误报)。但是,有一些工具可以帮助找到其中一些:
gcc
,这将是-Wuninitialized
,-Winit-self
和-Wmaybe-uninitialized
。请注意,您需要尝试不同级别的优化;您将在不同的-O
级别获得不同的警告。请注意,-Wmaybe-uninitialized
(顾名思义)可能会出现误报。malloc
等),您可以使用valgrind
。这实际上需要运行程序。答案 1 :(得分:7)
假设您正在使用GCC,请使用-Wuninitialized编译您的程序。最好总是用-Wall编译,因为使用C,程序员需要他能得到的所有帮助。