The most important difference between the original 'K&R' C, and ANSI/ISO C89/90, was function prototypes. These started being supported by some compilers in the mid-eighties, were formally available with the ratification of the standard in 1989-90.
But cross-platform code – say heavily cross-platform code, something that needed to compile on a lot of different platforms, including ones where GCC wasn't necessarily available yet and you had to use vendor compilers of very patchy quality – couldn't necessarily assume availability of the latest features.
Roughly how long was it before cross-platform code – something like Emacs, Oracle, Nethack – started at least assuming you could use function prototypes?
Kevin Sherlock, good idea about the old tarballs. DrSheldon, thanks for the reply on NetHack! Checking Emacs 21.4, dating from 2005, it is still using K&R function definitions. I'm not clear whether the status of that is 'yes these are still required for compatibility' or 'no longer required, changing them to modern function prototypes is still on the to-do list' but still a useful data point.
On the other hand, checking Postgres 95, the earliest version of that project for which I can find sources, it is using modern function prototypes.