Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
http.doc
Скачиваний:
0
Добавлен:
11.01.2020
Размер:
1.34 Mб
Скачать

Особенности реализации

При создании функций следует помнить некоторые важные вещи, влияющие на эффективность и использование. Эти особенности рассмотрены в следующем разделе.

Параметризированные функции и функции общего назначения

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

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

Эффективность

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

Имеется две причины, по которым inline-код быстрее вызова функции. Первая заключается в том, что инструкция «вызвать» забирает некоторое время на выполнение. Вторая заключается в том, что передаваемые аргументы помещаются в стек, что тоже требует некоторого времени. Для большинства приложении это несущественное увеличение времени выполнения не имеет значения. Но если время критично, следует помнить, что каждый вызов функции использует время процессора, которое может быть сэкономлено с использованием inline-кода. Ниже показаны две версии программы, выводящей квадраты чисел от 1 до 10. inline-версия работает быстрее, чем обычная, поскольку отсутствует обращение к функции.

inline-код

Вызов функции

#include <stdio.h> int main(void) { int x; for(x=1; x<11; ++x) printf("%d", x*x); return 0; }

#include <stdio.h> int sqr(int a); int main(void) { int x; for(x=1; x<11; ++x) printf("%d", sqr (x)); return 0; } int sqr(int a) { return a*a; }

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

ЗАМЕТКА: В С++ концепция inline-функций расширена и формализована фактически Inline функции являются важным компонентом С++.

Массивы

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

Массивы довольно тесно связаны с указателями. При обсуждении одного из этих понятий, как правило, ссылаются на другое. Данный раздел сайта рассказывает о массивах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]