Хелпикс

Главная

Контакты

Случайная статья





Идентификаторы. Стоит иметь ввиду, что один и тот же идентификатор может обозначать разные объекты в разных точках программы.. Ключевые слова



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

Под идентификатором понимается слово, состоящее из символов латинского алфавита, цифр и знака подчёркивания, которое обозначает переменную, константу, оператор, функцию, тип, метку, макрос или его параметр. Определение, более близкое к стандарту звучит следующим образом: «Идентификатор – это последовательность символов (включающая в себя «_», строчные и заглавные латинские буквы и др. символы) и цифр, которая обозначает одну или несколько сущностей.»

Идентификатор может состоять как из одного символа, так и из нескольких, в свою очередь первым символом в идентификаторе обязательно должна быть буква или знак подчёркивания.

Однако это не единственные ограничения, накладываемые на идентификаторы. Так, в качестве идентификаторов не могут использоваться ключевые слова, имена встроенных функций и не следует использовать зарезервированные идентификаторы. Если программист использует какой-либо идентификатор из последней группы, компилятор не выдаст ошибку, но их применение может привести к некорректным результатам или появлению ошибки времени исполнения.

Стоит иметь ввиду, что один и тот же идентификатор может обозначать разные объекты в разных точках программы.

Ключевые слова

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

Последним, на сегодняшний день, стандартом языка C является ISO / IEC 9899: 2018 (он же C18). Эта версия стандарта содержит исправления для более ранней версии ISO / IEC 9899: 2011 (C11) и не вводит никаких новых языковых функций, включая в себя, в основном, технические исправления.

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

Ключевое слово Назначение
Auto Указание компилятору о том что данные должны быть размещены в классе памяти называемом автоматическим.
Break, Continue Ключевые слова, предназначенный для прерывания цикла в целом или конкретной его итерации.
Switch, Case, Default Ключевые слова оператора выбора.
Char, Int Указание на целочисленные типы данных.
Const Указание компилятору о том, что переменная является константой.
Do, For, While Ключевые слова операторов цикла.
Double, Float Указание на вещественные типы данных.
Enum Указание компилятору на то, что переменная хранит одно значение из некоторого их набора.
Extern Указание компилятору о том, что переменная должна быть расположена во внешней памяти. То есть, она либо объявлена в другом модуле, либо объявлена ниже по ходу исполнения программного кода.
Goto Оператор безусловного перехода.
If, Else Ключевые слова условного оператора.
Inline Ключевое слово, предназначенное для объявления встраиваемой функции.
Long, Short Модификаторы размера целочисленных типов данных.
Register Указание компилятору о том, что данные должны быть размещены в регистровом классе памяти. Т.е. переменная является регистром, а данные этой переменной хранятся в регистре.
Restrict Указание на то, что объявленный указатель ссылается на блок памяти, на который не ссылается никакой другой указатель
Return Возврат значения из функции.
Signed, Unsigned Модификаторы целочисленных типов, указывающие на их принадлежность к знаковым или без знаковым.
Sizeof Получение размера объекта.
Static Спецификатор, указывающий на то, что локальная переменная не должна быть удалена во время всего жизненного цикла программы. Таким образом, эта локальная переменная не удаляется и не создаётся заново при каждом входе в её область действия.
Struct Указание на тип данных «структура».
Typedef Установка псевдонима для определённого типа данных.
Union Указание на тип данных который позволяет хранить данные в представлениях иных типов данных.
Void Указатель на отсутствие или произвольность значения.
Volatile Указание компилятору на возможность изменения значения переменной извне.
_Alignas Установка выравнивания для типа данных в явном виде.
_Alignof Получение выравнивания заданного типа данных, которое осуществляется на этапе компиляции.
_Atomic Модификатор типа, делающий его атомарным.
_Bool Указание на логический тип данных.
_Complex, _Imaginary Указание на типы данных, которые используется для работы с комплексными числами.
_Generic Осуществление выбора одного значения из предоставляемого набора, исходя из контролируемого типа данных.
_Noreturn Указание компилятору, что функция не может быть завершена стандартным путём. (т.е. с помощью return)
_Static_assert Указание на утверждения, проверяемые на этапе компиляции.
_Thread_local Объявление локальной, по отношению к потоку, переменной.

Комментарии

Программный код, написанный на C, можно и даже нужно сопровождать комментариями. Комментарий представляет собой фрагмент, не являющийся частью листинга, который пропускается на этапе компиляции программы.

Комментарий можно ввести двумя способами:

1. используя последовательность символов //;

2. используя последовательность символов /* .. */.

Символы /* .. */заключают в комментарий целый блок информации и не поддерживают вложенность.

Стоит отметить, что комментарии пусть и не учитываются на этапе компиляции, но тем не менее подлежат проверке на предмет поиска многобайтовых значений и символов, завершающих их. В первом случае в качестве символа, завершающего комментарий, будет выступать символ новой строки, в то время как во втором случае таким символом будет выступать последовательность «*/».

Ограничения

Часть ограничений, накладываемых на трансляцию, согласно C18, следующие:

· 127 уровней вложенности блоков;

· 63 уровня вложенности условных конструкций;

· 63 уровня вложенности выражений, заключённых в скобки, внутри полного выражения;

· 63 значащих начальных символа во внутреннем идентификаторе или имени макроса;

· 31 значащий начальный символ во внешнем идентификаторе;

· 4095 внешних идентификатора в одной единице трансляции;

· 4095 макро-идентификаторов, которые одновременно определены в одной единице трансляции;

· 127 параметров в одном определении функции;

· 127 аргументов в одном вызове функции;

· 127 параметров в одном макроопределении;

· 127 аргументов в одном вызове макроса;

· 4095 символа в одном строковом литерале;

· 15 уровней вложенности для файлов, указываемых в директиве #include;

· 1023 ключа для оператора множественного выбора (switch);

· 1023 константы в одном перечислении;

· 63 уровня вложенности в типе struct или union.

Все числовые пределы типов данных перечислены в заголовочных файлах <limit.h>, который предоставляет информацию о характеристиках переменных общих типов, <float.h>,который содержит в себе макросы, определяющие ограничения и параметры типов с плавающей точкой. Дополнительные ограничения, накладываемые на некоторые целочисленные типы и макросы перечислены в заголовочном файле <stdin.h>.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.