The reason why you normally declare a variable in a routine like that is to keep the RAM usage down.
If you have a variable declared through the whole sketch then the RAM is used through the whole sketch rather than just in its routine.
One problem with making tempC global has to do with knowing where it is modified. A function with a name like printTemperature is not expected to alter the value of the variable it is supposed to be printing.
If you make tempC global, you should consider renaming the function to indicate that it does alter the value in tempC, to something like getAndPrintTemp().
You could also make printTemperature return a value, and make it return the value that is stored in the local variable tempC. But, again, the name of the function does not reflect what it really does.