Означает ли это, что для внешних имен допустимы только 6 ведущих символов, а все остальные символы игнорируются?Например, мы определили две внешние переменные myexvar1 и myexvar2, компилятор будет обрабатывать эти две переменные как одну?
Да, это было так в 1990 году. Вернее, 6 уникальных ведущих символов внешних идентификаторов были тем, что стандарт C90 установил как минимум ограничение для компилятора.Это, конечно, было безумием - именно поэтому этот предел был увеличен до 31 в C99.
На практике большинство компиляторов C90 имели как минимум 31 уникальный символ для внутренних и внешних идентификаторов.
Если это правда, почему они советуют нам использовать более длинные имена для внешних переменных?
Не уверен, что они советуют это.Но стиль кодирования, используемый в K & R, часто просто ужасен, так что это определенно не та книга, к которой следует обращаться за советом по стилю кодирования.
В современном C требуется (C17 5.2.4.1), чтоу нас есть:
63 значимых начальных символа во внутреннем идентификаторе или имени макроса
31 значимых начальных символов во внешнем идентификаторе
Так что нене слишком волнуйтесь о том, с какими ограничениями столкнулись динозавры, но следуйте современному стандарту C.
Как указано в другом ответе, даже ограничение в 31 значимое начальное число для внешних идентификаторов указано как устаревшее, что означает, что это может привести кувеличилось еще больше, до 255, в будущих стандартах.