问:有没有办法在不使用lint的情况下强制编译器进行更彻底的错误检查?
答:有。大多数编译器能根据我们的要求进行更彻底的检查。除了检查错误(毫无疑问违背C语言规定的情况)外,大多数编译器还能提供警告,指出可能存在问题的地方。有些编译器具有多个“警告级别”,选择较高的级别能发现更多问题。如果你的编译器支持多级警告,建议选择最高级别,以便编译器执行其能力范围内最彻底的检查。第2章的“问与答”部分讨论了GCC(2.1节)的错误检查选项,GCC是随Linux操作系统发布的。
问:我很关心能放程序尽可能可靠的方法。除了lint和调试工具外,还有其他有效的工具吗?
答:有的。其他常用的工具包括越界检查工具(bounds-checker)和内存泄漏检测工具(leak-finder)。C语言不要求检查数组下标,而越界检查工具增加了此功能。内存泄漏监测工具帮助定位“内存泄漏”,即那些动态分配却从未被释放的内存块。