Бьерн Страуструп - Язык программирования С++. Главы 2-4 - Имена
ОГЛАВЛЕНИЕ
Страница 7 из 69
2.2 ИМЕНА
Имя (идентификатор) является последовательностью букв или цифр.Первый символ должен быть буквой. Буквой считается и символ подчеркивания _. Язык С++ не ограничивает число символов в имени.
Но в реализацию входят программные компоненты, которыми создатель транслятора управлять не может (например, загрузчик), а они, к сожалению, могут устанавливать ограничения. Кроме того, некоторые системные программы, необходимые для выполнения программы на С++, могут расширять или сужать множество символов, допустимых в идентификаторе.
Расширения (например, использование $ в имени) могут нарушить переносимость программы. Нельзя использовать в качестве имен служебные слова С++ (см. $$R.2.4), например:
hello this_is_a_most_unusially_long_nameТеперь приведем примеры последовательностей символов, которые не могут использоваться как идентификаторы:
DEFINED foO bAr u_name HorseSense
var0 var1 CLASS _class ___
012 a fool $sys class 3varЗаглавные и строчные буквы считаются различными, поэтому Count и
pay.due foo~bar .name if
count - разные имена. Но выбирать имена, почти не отличающиеся друг от друга, неразумно. Все имена, начинающиеся с символа подчеркивания, резервируются для использования в самой реализации или в тех программах, которые выполняются совместно с рабочей, поэтому крайне легкомысленно вставлять такие имена в свою программу.
При разборе программы транслятор всегда стремится выбрать самую длинную последовательность символов, образующих имя, поэтому var10
- это имя, а не идущие подряд имя var и число 10. По той же причине
elseif - одно имя (служебное), а не два служебных имени else и if.