drawing.c doesn't include extern.h, so the def_char_... functions it defines aren't preceded by a prototype. Having such guaantees that code in other files sees the same argument types as in the defining code.