https://docs.microsoft.com/en-us/cpp/c-language/c-identifiers
Microsoft Specific
Although ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers, the Microsoft C compiler allows 247 characters in an internal or external identifier name. If you aren't concerned with ANSI compatibility, you can modify this default to a smaller or larger number using the /H (restrict length of external names) option.
END Microsoft Specific
总的来说,标准(这里引用的应该是C89标准)指明了最小要支持的长度,任何支持标准的编译器实现,至少得遵循这个最小长度;然后特定的编译器实现,比如这里的微软C编译器,可以支持更长。
http://en.cppreference.com/w/c/language/identifier
这里有对C99前后的标准差异有描述。