Идентификаторы 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.
Завершение блока, относящегося только к системам Майкрософт
Идентификатор имеет "область", который является регионом программы, в которой он известен. Он также имеет "компоновку", которая определяет, ссылается ли то же имя в другом область на тот же идентификатор. Эти термины описаны в разделе Время существования, Область, Видимость и Компоновка.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по