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


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

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

#include <stdio.h>

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

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

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

Синтаксис

  • идентификатор:
    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 (ограничение длины внешних имен).

Завершение блока, относящегося только к системам 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

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

См. также

Основные понятия

Элементы C