Use a lint tool - i.e. PC-Lint. This will catch many of the 'structural' coding guideline issues. Meaning things that read to actual bugs rather than style/readability issues. (Not that readability is not important, but it is less so than actual errors).
Example, rather than requiring this style:
if (5 == variable)
As a way of preventing the 'unintended assignment' bug, let lint find it.