Поделиться через


Идентификаторы C

"Идентификаторы" или "символы" — это имена, задаваемые в программе для переменных, типов, функций и меток. Написание и регистр символов в именах идентификаторов должны отличаться от всех ключевых слов. Вы не можете использовать ключевые слова (C или Microsoft) в качестве идентификаторов; они зарезервированы для специального использования. Идентификатор создается путем его указания в объявлении переменной, типа или функции. В этом примере result представляет собой идентификатор целой переменной, а main и printf — это имена идентификаторов для функций.

#include <stdio.h>

int main()
{
    int result;

    if ( result != 0 )
        printf_s( "Bad file handle\n" );
}

Объявленный идентификатор можно использовать в последующих операторах программы для ссылки на соответствующее значение.

В инструкциях можно использовать goto специальный набор идентификаторов, называемый меткой инструкции. (Объявления рассматриваются в разделе Объявления и типы. Метки операторов рассматриваются в разделе Оператор goto и помеченные операторы.)

Синтаксис

identifier:
nondigit
identifier 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 z
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 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 параметр (ограничить длину внешних имен).

Завершение блока, относящегося только к системам Майкрософт

В компиляторе языка C прописные и строчные буквы считаются разными символами. Эта особенность, называемая "учетом регистра", позволяет создавать различные идентификаторы, состоящие из одинаковых букв в различных регистрах. Например, каждый из следующих идентификаторов является уникальным:

add
ADD
Add
aDD

Блок, относящийся только к системам Microsoft

Не выбирайте имена для идентификаторов, которые начинаются с двух символов подчеркивания или символа подчеркивания, за которым следует прописная буква. Стандарт ANSI языка C разрешает резервировать имена идентификаторов, начинающиеся с таких сочетаний символов, для использования компилятором. Идентификаторы с областью действия на уровне файлов также не должны начинаться со знака подчеркивания и последующей строчной буквы. Имена идентификаторов, начинающиеся с таких символов, также зарезервированы. По принятому соглашению в системах Microsoft символ подчеркивания и прописная букву используются в начале имен макросов, а два символа подчеркивания используются для специальных ключевых слова систем Microsoft. Чтобы избежать конфликтов именования, всегда выбирайте имена идентификаторов, которые не начинаются с одного или двух символов подчеркивания, или имена, начинающиеся с символа подчеркивания, за которым следует прописная буква.

Завершение блока, относящегося только к системам Майкрософт

Ниже приведены примеры допустимых идентификаторов, которые соответствуют ограничениям на имена, накладываемым стандартом ANSI или системами Microsoft:

j
count
temp1
top_of_page
skip12
LastNum

Блок, относящийся только к системам Microsoft

Хотя идентификаторы в исходных файлах по умолчанию чувствительны к регистру, символы в объектных файлах не являются. Microsoft C обрабатывает идентификаторы в единице компиляции с учетом регистра.

Компоновщик Microsoft учитывает регистр. Необходимо указывать все идентификаторы единообразно с учетом регистра.

"Исходная кодировка" — это набор допустимых символов, которые могут использоваться в файлах исходного кода. Для Microsoft C исходной кодировкой является стандартный набор символов ASCII. Исходная кодировка и кодировка выполнения содержат символы ASCII, используемые в виде escape-последовательностей. Сведения о кодировке выполнения см. в статье Константы символов в C.

Завершение блока, относящегося только к системам Майкрософт

Идентификатор имеет "область", который является регионом программы, в которой он известен. Он также имеет "компоновку", которая определяет, ссылается ли то же имя в другом область на тот же идентификатор. Эти термины описаны в разделе Время существования, Область, Видимость и Компоновка.

См. также

Элементы языка C