c variables

Can someone explain internal/external variable names?

In the C book, it says:

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. Keywords like if, else, int, float, etc., are reserved: you can’t use them as variable names. They must be in lower case.

Can someone explain what is “internal name”, “external names”, “external variables”?
It would be better if you can make an example.