To be truly standards-compliant, must all functions in C (except for main) have a prototype, even if they are only used after their definition in the same translation unit?<
To the best of my knowledge (in ANSI C89/ISO C90), no. I am unsure about C99; however, I would expect the same.
Personal Note: I only write function prototypes when...