logo
ПЗ_А

2.2.1.Обзор возможностей языка Си

Язык программирования Си [27] называют языком программирования среднего уровня. Как язык среднего уровня Си позволяет битами, байтами и адресами, т.е. базовыми элементами данных. Несмотря на это, программа на языке Си обладает хорошей переносимостью между платформами.

Как и многие другие языки программирования, Си придерживается концепции типов данных, которые представляют собой набор значений, хранящихся в переменных, а также набор операций, которые могут быть выполнены над этими значениями. Язык Си имеет несколько базовых типов данных (см. табл. Таблица 2 .6).

Таблица 2.6

Типы данных, определенных Стандартом Си

Тип

Размер в битах

Минимальный диапазон значений

(signed) char

8

от -127 до 127

unsigned char

8

от 0 до 255

(signed) int

16 или 32

от -32767 до 32767

unsigned int

16 или 32

от 0 до 65535

(signed) short

16

от -32767 до 32767

unsigned short

16

от 0 до 65535

(signed) long

32

от -2 147 483 647 до 2 147 483 647

long long

64

от –(263-1) до (263-1)

unsigned long

32

от 0 до 4 294 967 295

unsigned long long

64

от 0 до (264-1)

Таблица 2 .6 (продолжение)

float

32

от 1Е-37 до 1Е+37 с точностью не менее 6 значащих десятичных цифр

double

64

от 1Е-37 до 1Е+37 с точностью не менее 10 значащих десятичных цифр

Стандарт языка Си предусматривает 32 ключевых слова, которые в свою очередь также являются ключевыми словами языка Си++. Кроме стандартных ключевых слов, многие компиляторы разрешают дополнительно использовать некоторые нестандартные ключевые слова с целью определения модели памяти, вставок на других языках программирования и т.д.

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

Любая программа на языке Си состоит из одной или нескольких функций. Обязательно должна быть определена единственная главная функция main(), с которой начинается выполнение программы. Общая структура программы на языке Си представлена на рис. Рис. 2 .18.

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

Объявление глобальных переменных

int main(список параметров)

{

последовательность операторов

}

тип_возвращаемого_значения f1(список параметров)

{

последовательность операторов

}

тип_возвращаемого_значения f2(список параметров)

{

последовательность операторов

}

тип_возвращаемого_значения fN(список параметров)

{

последовательность операторов

}

Рис. 2.18. Структура программы на языке Си.

2.2.2.Особенности языка Си++

Несмотря на то, что компилятор Си++ позволяет собирать программы, написанные на языке Си, основные преимущества языка заключаются в возможности использования объектно-ориентированного подхода при разработке программ. Это позволяет создать программу, максимально приближенную к действительности, к рассматриваемой предметной области.

Язык Си++ реализует все рассмотренные механизмы ООП. Инкапсуляция реализована с помощью классов. Класс определяет набор данных, а также методы обработки этих данных, которые будут доступны всем экземплярам этого класса (объектам). Объявление нового класса осуществляется с помощью ключевого слова class.

Полиморфизм в языке Си++ реализован с помощью виртуальных методов класса. Функционал данных методов может быть переопределен при наследовании классов, однако интерфейс остается неизменным. Т.о. язык Си++ реализует все три механизма ООП.