Непейвода Н.Н. Программирование. Раздел 1

Непейвода Н.Н. Программирование. Страница 60

register — регистровые переменные. Это те переменные, которые для оптимизации вычислений размещаются в специальных (быстрых) ре­гистрах процессора (если это возможно). Во всем остальном они пол­ностью аналогичны автоматическим переменным.

Понятие класса памяти подтверждает тот факт, что С создавался как язык программирования для вычислителя вполне определенной архитектуры. Сейчас язык С++ реализован практически для всех архитектур. Но для них, с одной стороны, некоторые из конкретных средств С оказались избыточ­ными (например, регистровые переменные на архитектуре Intel), с другой стороны, для некоторых из ценных качеств, предоставляемых архитектурно, в С++ нет средств для их эффективного использования (примером является тегирование). В целом в языке С и его наследниках догматизируется прин­цип однородности памяти.

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

Поскольку логически понятие константы весьма полезно и ничему не про­тиворечит, в С++ оператор описания константы введен и имеет обычную форму (показанную во фрагменте (1.4)).

Тому, чему в Алголе 68 соответствовали значения типаrefreftypeи так далее, в С соответствуют указатели, например: int **а; и ссылки: int &г;

Задания для самопроверки

Возьмите книгу по программированию на неизвестном вам языке (же­лательно выбрать первый доступный из списка Ada, Perl, Modula, Java, FORTRAN) и, не читая текста, поймите некоторые из приведенных в ней программ. Повторяйте это упражнение раз в несколько месяцев по мере овладения новыми понятиями программирования.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама