I'm not sure about max identifier length in general, but identifiers exported across translation units (i.e. non-static in modern C) were limited to 6 significant chars as late as ISO C90, although I don't think there were still any compilers around at the time that actually made use of this limit.