This is still idiomatic to the C community, even if it isn't strictly required any longer. About the only place it's ignored is inline variables for loops.
This will fail to compile with an "undeclared identifier" error:
if ( x > 0 )
{
int y = 1;
}
printf("%d", y);
It is a feature that was long overdue in C IMHO.OpenWatcom (the compiler the parent post mentioned) supports C99.
With few exceptions, C++ can mostly be treated as a superset of C.
1) Mixed declarations and code. All variables must be declared at the top of a basic block.
2) Along similar lines, declaring variables in control statements like for().
3) // comments. (Hardly a critical feature, but you're probably used to having them.)
Perhaps not coincidentally, I think these were all features which began their life in C++, and were backported to C in C99.