So, prototypes were optional (except, technically, for functions such as printf() that support variable numbers of arguments; for those, a prototype was mandatory in C89, even though compilers did not usually complain ??? or cause trouble ??? if the declarations were missing).