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


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

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

#include <stdio.h>

int main()
{
    int result;

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

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

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

Синтаксис

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 позволяет шесть значимых символов в имени внешнего идентификатора и 31 для имен внутренних (в функции) идентификаторов. Внешние идентификаторы (объявленные в глобальной области или объявленные с классом externхранилища) могут быть подвержены дополнительным ограничениям именования, так как эти идентификаторы должны обрабатываться другими программными средствами, такими как компоновщики.

Специфично для Microsoft

Хотя ANSI разрешает 6 значимых символов во внешних именах идентификаторов и 31 для имен внутренних (в функции) идентификаторов, компилятор Microsoft C разрешает 247 символов во внутреннем или внешнем имени идентификатора. Если вы не обеспокоены совместимостью ANSI, можно изменить это значение по умолчанию, чтобы использовать меньшее или большее число, указав /H параметр (ограничить длину внешних имен).

Конец раздела, относящегося к Microsoft

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

add
ADD
Add
aDD

Специфично для Microsoft

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

Конец раздела, относящегося к Microsoft

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

j
count
temp1
top_of_page
skip12
LastNum

Специфично для Microsoft

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

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

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

Конец раздела, относящегося к Microsoft

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

См. также

Элементы C