I am conventionally a Java programmer learning to program in C. Now in the Chapter 2 of the book by Kernighan and Ritchie, this is what is written.
At least the first 31 characters of an internal name are significant. For function names and external variables, the number may be less than 31, because external names may be used by assemblers and loaders over which the language has no control. For external names, the standard guarantees uniqueness only for 6 characters and a single case.
But then they write
We tend to use short names for local variables, especially loop indices, and longer names for external variables.
Isn't it the exact opposite of what should be done. While I understand we don't want long descriptive variable names for indices, don't the above two sentences contradict each other?