Язык С

Это не руководство по языку С, а краткое изложение некоторых ключевых отличий языка C от таких языков, как Pyton и особенно Java. Язык Java создан на основе C, поэтому у них много общего. Pyton, при всех своих отличиях, также похож на С.
Но для удобства мы все же сконцентрируем свое внимание на языке Java. И Java, и Pyton, и С относятся к императивным языкам с типами данных, переменными и операторами управления. Элементарными типами данных в C являются целые числа — integer (включая короткие — short и длинные — long), символы — char и числа с плавающей точкой — float. Составные типы данных могут быть созданы с использованием массивов, структур и объединений. Операторы управления в C подобны тем, что используются в Java, и включают в себя if, switch, for и while. Функции и параметры в обоих языках примерно одинаковые. Одно из средств, имеющееся в C, но отсутствующее в Java и Pyton, — явные указатели. Указатель — это переменная, которая указывает на переменную или структуру данных (то есть содержит их адрес). Рассмотрим пример:

char cl, c2, *p; cl = 'c';

P = &c1; c2 = *p;

Оператор в первой строке объявляет cl и c2 символьными переменными ир — переменной, которая указывает на символ (то есть содержит его адрес). Первое присваивание сохраняет ASCII-код символа «с» в переменной cl. Во втором адрес переменной cl присваивается переменной-указателю р. А в третьем значение переменной, на которую указывает переменная p, присваивается переменной c2, поэтому после выполнения этих операторов c2 также содержит ASCII-код символа «с». Теоретически указатели типизированы, поэтому присвоение адреса числа с плавающей точкой указателю на символ не допускается, но на практике компиляторы позволяют подобные присваивания, хотя некоторые из них и выдают предупреждения. Указатели являются очень мощной конструкцией, но при невнимательном использовании являются источником большого количества ошибок.

В C отсутствует встроенная поддержка строковых объектов, потоков, пакетов, классов, объектов, обеспечения безопасности типов и сборки мусора. Последнее является серьезной проблемой для операционных систем. Все хранилища данных в языке C либо имеют статический характер, либо явно размещаются и освобождаются программистом, при этом часто используются библиотечные функции malloc и free. Это последнее свойство — полный контроль программиста над памятью — наряду с явными указателями и делает язык C привлекательным для написания операционных систем. Операционные системы по сути являются системами, которые работают в реальном масштабе времени. Когда происходит прерывание, у операционной системы может быть лишь несколько микросекунд для осуществления какого-нибудь действия, чтобы не допустить потери важной информации. В такой ситуации произвольное включение в работу сборщика мусора абсолютно неприемлемо.

1.8.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Язык С:

  1. ЯЗЫК
  2. Язык
  3. Русский язык
  4. ЯЗЫК (ПРОБЛЕМЫ)
  5. § 3. Государственный язык
  6. г. Штампы (иносказательный язык).
  7. Язык и жизнь
  8. Русский язык
  9. Язык
  10. Язык целого
  11. Русский язык
  12. КАК ИЗУЧИТЬ ИНОСТРАННЫЙ ЯЗЫК
  13. Язык
  14. Язык Атлантиды
  15. Язык экрана
  16. СЛОВЕСНЫЙ ЯЗЫК ЧУВСТВ
  17. АНГЛИЙСКИЙ ЯЗЫК
  18. НЕМЕЦКИЙ ЯЗЫК