Идентификаторы C
"Идентификаторы" или "символы" — это имена, задаваемые в программе для переменных, типов, функций и меток. Написание и регистр символов в именах идентификаторов должны отличаться от всех ключевых слов. Не допускается использовать ключевые слова (C или Microsoft) в качестве идентификаторов; они зарезервированы для специального применения. Идентификатор создается путем его указания в объявлении переменной, типа или функции. В этом примере result представляет собой идентификатор целой переменной, а main и printf — это имена идентификаторов для функций.
#include <stdio.h>
int main()
{
int result;
if ( result != 0 )
printf_s( "Bad file handle\n" );
}
Объявленный идентификатор можно использовать в последующих операторах программы для ссылки на соответствующее значение.
Специальный вид идентификатора, называемый меткой оператора, может использоваться в операторах goto. (Объявления рассматриваются в разделе Объявления и типы. Метки операторов рассматриваются в разделе Оператор goto и операторы с метками).
Синтаксис
идентификатор:
nondigitidentifier nondigit
identifier digit
nondigit: один из следующих символов:
_ a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z
digit: один из следующих символов:
0 1 2 3 4 5 6 7 8 9
Первый символ имени идентификатора должен принадлежать к группе nondigit (т. е., первым символом должен быть знак подчеркивания или прописная либо строчная буква). Стандарт ANSI допускает 6 значащих символов в имени внешнего идентификатора и 31 символ для имен внутренних (внутри функции) идентификаторов. На имена внешних идентификаторов (идентификаторов, объявленных в глобальной области или с классом хранения extern) могут накладываться дополнительные ограничения, поскольку эти идентификаторы должны обрабатываться другим программным обеспечением, таким как компоновщики.
Блок, относящийся только к системам Microsoft
Хотя стандарт ANSI допускает 6 значащих символов в именах внешних идентификаторов и 31 символ в именах внутренних (внутри функции) идентификаторов, компилятор Microsoft C допускает 247 символов в именах внутренних и внешних идентификаторов. Если совместимость со стандартом ANSI не требуется, можно увеличить или уменьшить это значение по умолчанию с помощью параметра /H (ограничение длины внешних имен).
Завершение блока, относящегося только к системам Microsoft
В компиляторе языка C прописные и строчные буквы считаются разными символами. Эта особенность, называемая "учетом регистра", позволяет создавать различные идентификаторы, состоящие из одинаковых букв в различных регистрах. Например, каждый из следующих идентификаторов является уникальным:
add
ADD
Add
aDD
Блок, относящийся только к системам Microsoft
Не выбирайте для идентификаторов имена, которые начинаются с двух символов подчеркивания или с одного символа подчеркивания и последующей прописной буквы. Стандарт ANSI языка C разрешает резервировать имена идентификаторов, начинающиеся с таких сочетаний символов, для использования компилятором. Идентификаторы с областью действия на уровне файлов также не должны начинаться со знака подчеркивания и последующей строчной буквы. Имена идентификаторов, начинающиеся с таких символов, также зарезервированы. По принятому соглашению в системах Microsoft символ подчеркивания и прописная букву используются в начале имен макросов, а два символа подчеркивания используются для специальных ключевых слова систем Microsoft. Во избежание каких-либо конфликтов имен никогда не выбирайте имена идентификаторов, которые начинаются с одного или двух символов подчеркивания или с символа подчеркивания и последующей прописной буквы.
Завершение блока, относящегося только к системам Microsoft
Ниже приведены примеры допустимых идентификаторов, которые соответствуют ограничениям на имена, накладываемым стандартом ANSI или системами Microsoft:
j
count
temp1
top_of_page
skip12
LastNum
Блок, относящийся только к системам Microsoft
Хотя по умолчанию в файлах исходного кода учитывается регистр символов в идентификаторах, в символах объектных файлов регистр не учитывается. Microsoft C обрабатывает идентификаторы в единице компиляции с учетом регистра.
Компоновщик Microsoft учитывает регистр. Необходимо указывать все идентификаторы единообразно с учетом регистра.
"Исходная кодировка" — это набор допустимых символов, которые могут использоваться в файлах исходного кода. Для Microsoft C исходной кодировкой является стандартный набор символов ASCII. Исходная кодировка и кодировка выполнения содержат символы ASCII, используемые в виде escape-последовательностей. Сведения о кодировке выполнения см. в разделе Символьные константы.
Завершение блока, относящегося только к системам Microsoft
У идентификатора имеется "область", т. е. область программы, в которой он определен, и "компоновка", которая определяет, ссылается ли то же самое имя из другой области на этот же идентификатор. Эти вопросы рассматриваются в разделе Время существования, область, видимость и компоновка.