On Jul 16, 2017 11:49 AM, "Matt Sicker" <boa...@gmail.com> wrote:
C quality somewhat depends on which version of C you're trying to remain compatible with (I'm guessing C89 due to Windows, though I could be wrong). Valgrind and other tracing tools are typically used. Valgrind is a default choice (though then you still have plenty of configuration choices to make :) A similar set of functionality is available using the various sanitizers available in clang (and recent versions of gcc, though I haven't tried that). These are described in the clang user manual: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation Clang also supports static analysis, which can, um, detect errors statically. This can sometimes generate a bunch of false positives, depending on the coding style. The analyzer typically produces an html report. These analyzers can be run using scan build. There are quite a lot more static analyzers available via clang-tidy, which may or may not require installing an extra package. CppUnit is a sensible choice for unit tests, but does require that tests be written in C++, which might be a problem if you are sent back in time (tip: write to Bjarne at AT&T Bell Laboratories, and ask for a tape).