I have a project that I have written in C99. It uses variadic macros, new-style function definitions, and variable declarations can occur below statements. These things are outside the scope of the original C89 draft, so they're technically C99. However, a guy working with me has stated that he'd like to transition it to C89 for greater compiler compatibility.
I sometimes get confused about exactly what is considered C89 and what is not. New-style function definitions are ubiquitous, but do people consider that they're writing in C99 if they use them?
I'd like my project to be as portable as possible. Realistically, how many compilers that are worth using are going to fail to compile my code?