Is there a more organized way to use function prototyping or something similar and more efficient? I've had a few problems with function prototyping getting unorganized and filling most of my files with externs and voids.
I assume that under function prototyping
you are asking how to organize all function signatures so that other compilation modules can reuse them.
Obvious: put prototype into header files
Use headers generators (Makeheaders, GCC AutoInclude) - so that you do not have to write these yourself.