Names should be unique in their first 31 characters
§5.2.4.1 Translation limits of the C11 standard says
The implementation shall be able to translate and execute at least one program that contains at least one instance of every one of the following limits:18)
— 31 significant initial characters in an external identifier (each universal character name specifying a short identifier of 0000FFFF or less is considered 6 characters, each 18) Implementations should avoid imposing fixed translation limits whenever possible.
The same limit applies for C99 so your example names should be uniquely identified by any standards-compliant compiler from the last 10+ years.