Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Система типов языка Си

Понятие о типе

Алфавит языка Си

Алфавит, синтаксис и семантика

Любой язык программирования состоит из трех частей:

● Алфавит.

● Синтаксис.

● Семантика

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

В исходных текстах программ, написанных на языке Си, допускается использование следующих символов:

1. Латинские строчные и прописные буквы:
a, b, …, z и A, B, …, Z

2. Цифры: 0, 1, …, 9

3. Символ подчеркивания: _

4. Пробел (код 32)

5. Специальные символы: +, -, * и др.

6. Составные символы, воспринимаемые как один символ:
<=, >= и др.

7. В комментариях и строковых константах допустимо использование кириллицы.

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

● Тип определяет множество значений, которые может принимать данное.

● Тип определяет перечень операций, которые можно применять к данным.

● Каждое значение может относиться только к одному типу.

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

 

Система типов языка Си

В соответствии с одной из систем классификации все типы языка Си делят на следующие четыре категории:

● function,

● void,

● скалярные,

● агрегатные.

Остановимся вначале кратко на каждой из четырех категорий типов.

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

Следует отметить, что void является зарезервированным словом. Оно используется для следующих целей:

● В качестве типа значения, возвращаемого функцией. Если из заголовка функции следует, что типом значения, которое она возвращает, является void, то это означает, что функция не возвращает значения. В этом случае она может использоваться подобно процедуре такого языка, как Паскаль.

● Зарезервированное слово void в языке используется для указания на то обстоятельство, что функция не имеет параметров.

В качестве примера применения типа void может служить объявление библиотечной функции clrscr(), которая не имеет возвращаемого значения и не принимает параметров:

void clrscr(void);

Каждое данное, относящееся к категории скалярных типов, характеризуется только одним значением. Данные, относящиеся к категории агрегатных типов, характеризуется некоторой совокупностью значений. Остановимся вначале на категории скалярных типов.

В стандарте языка С99 к скалярным типам относятся следующие виды типов:

● арифметические,

● логический,

● указатели,

● перечисления.

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

Арифметические типы составляют большую группу типов. В ней можно выделить три части:

● целые,

● вещественные,

● комплексные.

Комплексные типы появились только в стандарте С99. В связи с тем, что многие компиляторы его еще не поддерживают, этот тип не будет рассматриваться в настоящем пособии.

Каждая из оставшихся разновидностей арифметических типов включает в себя достаточно большое количество отдельных типов. К числу основных (базовых) арифметических типов относят следующие типы. Для целочисленных типов базовыми типами считаются типы char и int, а для вещественных типов – float и double. Обращает на себя внимание тот факт, что символьный тип (тип char) в языке Си рассматривается как разновидность целочисленного типа. Это обстоятельство можно рассматривать как проявление ослабленной типизации, которое присуще языку Си.

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

● signed (знаковый),

● unsigned (беззнаковый),

● long (длинный),

● short (короткий).

С учетом модификаторов можно написать 17 разновидностей арифметических типов.

Основным целочисленным типом в языке Си является тип int. Это аппаратно-зависимый тип. Размер, который занимает данное, относящееся к этому типу, зависит от размера машинного слова конкретной среды программирования.

Указатели являются специальным видом данных. Особенность указателя состоит в то, что его значением является адрес памяти, начиная с которого хранится данное. Указатели будут подробно рассматриваться во второй части пособия. В этой части пособия указатели рассматриваются только в объеме, необходимом для грамотной работы с библиотечными функциями.

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

К категории агрегатных типов, с которыми можно работать в языке Си, относятся следующие типы:

● массивы,

● структуры,

● объединения.

<== предыдущая лекция | следующая лекция ==>
Анализ программы | Идентификаторы. Зарезервированные слова
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 945; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.