русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекция 3

Базовые конструкции языка C

К базовым конструкциям языка C относятся:

- алфавит;

- константы;

- идентификаторы;

- ключевые слова;

- операции;

- комментарии.

Множество представимых символов языка C состоит из алфавита языка C, разделительных символов и остальных, ввод которых возможен с клавиатуры, но которые могут использоваться только в символьных строках, константах и комментариях (буквы русского алфавита, escape-последовательности).

Алфавитом языка называется совокупность символов, используемых в языке. Язык C является чувствительным к регистру, то есть различает прописные и строчные буквы. В алфавит языка C входят:

- буквы латинского алфавита (прописные и строчные);

- десятичные цифры;

- знаки пунктуации.

Знаки пунктуации.

, . : ; ? ’ ” ! | \ / ~ _ ( ) { } [ ] # % & ^ - = + *

Из знаков алфавита составляются следующие конструкции языка C: константы, идентификаторы, ключевые слова, операции.

Разделительные символы – это символы, вводимые программистом с клавиатуры при написании программы для разделения слов. К ним относятся: пробел, горизонтальная и вертикальная табуляции, перевод строки, возврат каретки, новая страница, новая строка, Ctrl-Z – символ индикации конца файла.

Escape-последовательности применяются для представления символов и чисел, которые нельзя непосредственно ввести с клавиатуры, и разделительных символов в символьных строках и константах. Escape-последовательности используются в процессе выполнения программы. Escape-последовательность начинается с символа обратной косой черты (\), называемого escape-символом, после которого следует escape-код. Ниже в таблице перечислены escape-последовательности и их функции.

Последова-тельность Название Функция
\a Звонок Подает звуковой сигнал
\b Backspace Возврат на один символ
\f Перевод страницы Начало нового экрана
\n Новая строка Переход к началу новой строки
\r Возврат каретки Возврат к началу текущей строки
\t Табуляция Переход к следующей позиции табуляции
\v Вертикальная табуляция Переводит курсор вниз на несколько строк
\\ Обратная черта Выводит обратную косую черту
\’ Апостроф Выводит апостроф
\” Кавычка Выводит двойную кавычку

Можно также использовать escape-последовательности для представления ASCII-кодов символов в восьмеричном или шестнадцатеричном формате. Данное применение показано ниже в таблице.

Формат Основание Описание
\OOO От одной до трех восьмеричных цифр, следующих за escape-символом
\xHH или \XHH Одна или две шестнадцатеричных цифры, следующих за \x или \X

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

Лексема – единица текста программы, имеющая определённый смысл для компилятора и не содержащая в себе других лексем. Внутри лексем недопустимы пробелы, символы табуляции, перевода строки. Единственное исключение – это строки текста, внутри которых это возможно. Отсутствие пробелов между различными лексемами допустимо. Лексемы составляются из множества символов алфавита языка C и разделительных символов.

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

Комментарий – это последовательность символов, воспринимаемая компилятором как пробельные символы. Используется программистом для внесения пояснений в текст программы для себя или другого программиста, а также для выделения неиспользуемых фрагментов кода. Комментарий – это последовательность символов, начинающаяся с открывающей пары символов ‘/*’ и заканчивающаяся закрывающей парой символов ‘*/’.

Пример 1.

/* Это –

комментарий

*/

Вложенные комментарии запрещены стандартом языка C ANSI. При компиляции программы, содержащей следующий пример, будет выдано сообщение об ошибке.

Пример 2.

/* Вложенные комментарии /* запрещены */ !*/

Комментарием в данном примере будет считаться последовательность символов, начинающаяся с первой открывающей пары символов ‘/*’ и заканчивающаяся первой закрывающей парой символов ‘*/’. Таким образом, последовательность символов ‘!*/’ не будет считаться комментарием и компилятор будет пытаться распознать её как лексему. В данном случае правильным будет следующий пример.

Пример 3

/* Вложенные комментарии /* запрещены */

Вложенные комментарии могут быть доступны, если вызвать командой меню Options>Compiler>Source диалоговое окно и в поле Source Options установить флаг Nested comments. Тогда при компиляции программы с примером 2 ошибок не будет, а при компиляции программы с примером 3 будет выдана ошибка, так как отсутствует вторая закрывающая пара символов ‘*/’.

Идентификаторы – это имена функций, переменных, указателей, констант, меток и типов данных, определяемых пользователем. Идентификатором может быть произвольная последовательность латинских букв, цифр и символа подчеркивания, которая начинается с буквы или символа подчеркивания. В качестве идентификаторов запрещается использовать ключевые слова. В пределах логического блока (блок-оператор или функция) идентификатор должен быть уникальным, иначе компилятор выдаст сообщение об ошибке (подробнее об этом – при рассмотрении классов памяти и областей видимости). Идентификатор может состоять из произвольного числа символов, однако два идентификатора считаются различными, если различны их 32 первые символа. Лучше всего не использовать идентификаторы, начинающиеся с символа подчеркивания, так как такие идентификаторы используются компилятором для своих целей.

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

auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof typedef volatile
char do extern if return static union while

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

asm __cs far __huge _near _seg
_asm _ds _far interrupt __near __seg
__asm __ds __far _interrupt pascal _ss
cdecl _es _fastcall __interrupt _pascal __ss
_cdecl __es __fastcall _loadds __pascal  
__cdecl _export huge __loadds _saveregs  
_cs __export _huge near __saveregs  

Помимо этих ключевых слов, компилятор Borland C++ 3.1 добавляет ещё имена регистровых псевдопеременных.

_AH _BH _CH _DH _SI _SP _ES
_AL _BL _CL _DL _DI _CS _SS
_AX _BX _CX _DX _BP _DS _FLAGS

Язык C++ в дополнении к ключевым словам языка C добавляет следующие слова.

asm explicit operator template using
bool false overload this virtual
catch friend private throw wchar_t
class inline protected true  
const_cast mutable public try  
delete namespace reinterpret_cast typeid  
dynamic_cast new static_cast typename  

Просмотров: 520


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.