Én C99-et használom, a normális fordítók már mind jól támogatják (az MSVC++ nekem nem számít annak, de amúgy sem kell programoznom Win alá hála az égnek). Emellé ha nagyon tiszta kódot szeretnél, akkor használd ezeket az opciókat (csinálj Makefile-t ha még nincs, abba mentsd el, aztán nem kell rá emlékezned):
-Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign
FreeBSD-n van egy WARNS make változó, amit 0-6-ig lehet beállítani, ezzel szabályozva a warningok szigorúságát, a legtisztább kódok (WARNS=6) ezekket az opciókkal fordulnak. És ott a -Werror is, hogy ha warning csúszna bele, akkor a programozó szépen javítsa csak ki.