Microchip has the free MCC18 compiler for their 18F series. The 24/30/33 series also have a free Microchip compiler.
The 16F is not an especially C-friendly core. Microchip does not offer a compiler. HTSoft does have a 16F compiler but its performance might not be that great in terms of speed and code size due to the architecture of the 16F core. HTSoft also has 18F and higher compilers, but they're not free. There's a bunch of other guys making compilers too, some of them doing 16F ones.