Бьерн Страуструп - Язык программирования С++. Главы 2-4 - Имена

ОГЛАВЛЕНИЕ

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
        pay.due  foo~bar   .name    if
Заглавные и строчные буквы считаются различными, поэтому Count и
count - разные имена. Но выбирать имена, почти не отличающиеся друг от друга, неразумно. Все имена, начинающиеся с символа подчеркивания, резервируются для использования в самой реализации или в тех программах, которые выполняются совместно с рабочей, поэтому крайне легкомысленно вставлять такие имена в свою программу.
  При разборе программы транслятор всегда стремится выбрать самую длинную последовательность символов, образующих имя, поэтому var10
- это имя, а не идущие подряд имя var и число 10. По той же причине
elseif - одно имя (служебное), а не два служебных имени else и if.