By external variable I mean a variable declared with the extern modifier (and defined elsewhere in the program).
I've been told of this limitation, and couldn't find a confirmation or rebuttal on the web. Is this true? If so, which is the limit? Is it usually enforced by compilers?
Yes, there is a minimal limit that every compiler should support.
In this case, every compiler should be able to support at least 4095 external identifiers in one translation unit (but most compilers probably support much more).