cleanup C compiler code
use NULL and SYM_NULL macros for pointers
correct prototypes