Yes. It is useful for printing large strings that would otherwise overflow the static buffer and for strings that contain non-ASCII characters.
I stand corrected (thanks to Uwe as well).
I also finder easier to read functions that have all the variables declared at the top of each block. Don't know the type of a variable? Then scan the top of each block - no need to look at any lines in between.
Ah, I use the semantic package for emacs to help with this. If you leave the cursor on a variable for a few moments the declaration appears in the echo area. Very nice.
I still tend to prefer having variables declared closest to where they're used, but you could equally say that if a function is so big the distance is really causing problems it probably should be split up and made smaller.
One additional niggle: temp_in and temp_out aren't terribly good variable names.
Indeed. I try and keep variables and functions to one word, where possible. Obviously clarity is more important though ...