|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Идентификаторы. Стоит иметь ввиду, что один и тот же идентификатор может обозначать разные объекты в разных точках программы.. Ключевые словаИдентификаторы Под идентификатором понимается слово, состоящее из символов латинского алфавита, цифр и знака подчёркивания, которое обозначает переменную, константу, оператор, функцию, тип, метку, макрос или его параметр. Определение, более близкое к стандарту звучит следующим образом: «Идентификатор – это последовательность символов (включающая в себя «_», строчные и заглавные латинские буквы и др. символы) и цифр, которая обозначает одну или несколько сущностей.» Идентификатор может состоять как из одного символа, так и из нескольких, в свою очередь первым символом в идентификаторе обязательно должна быть буква или знак подчёркивания. Однако это не единственные ограничения, накладываемые на идентификаторы. Так, в качестве идентификаторов не могут использоваться ключевые слова, имена встроенных функций и не следует использовать зарезервированные идентификаторы. Если программист использует какой-либо идентификатор из последней группы, компилятор не выдаст ошибку, но их применение может привести к некорректным результатам или появлению ошибки времени исполнения. Стоит иметь ввиду, что один и тот же идентификатор может обозначать разные объекты в разных точках программы. Ключевые слова Под ключевыми словами можно понимать лексемы, используемые в языке программирования для каких-либо специальных целей. Последним, на сегодняшний день, стандартом языка C является ISO / IEC 9899: 2018 (он же C18). Эта версия стандарта содержит исправления для более ранней версии ISO / IEC 9899: 2011 (C11) и не вводит никаких новых языковых функций, включая в себя, в основном, технические исправления. В соответствии с C18, язык программирования C содержит следующий набор ключевых слов:
Комментарии Программный код, написанный на 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>.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|