Хорошо написанная подпрограмма должна быть максимально независима от остальной программы. Для этого в ней не должно быть обращений к глобальным переменным, а всю необходимую информацию она должна получать и отдавать через параметры. Составление заголовков (то есть, по сути, выбор того, что сделать параметрами), таким образом, требует понимания, какие данные необходимы для решения оформляемой в виде подпрограммы подзадачи (входные данные), и в каком виде лучше всего представить результат (выходные данные).
Простейший пример: требуется возвести число в квадрат. Какие данные для этого необходимы? Необходимо само число, которое будем возводить, и все. Что будет на выходе? Опять же одно число – квадрат того, что на входе. Данные на входе должны быть параметрами процедуры или функции (как правило, параметрами-значениями).
Выходные данные должны записываться в параметрыпеременные или в значение функции. Соответственно есть следующие варианты написания подпрограмм для решения этой задачи:
Как писать цепляющие заголовки: 49 лет опыта легендарного Джона Кейплза за 17 минут
[static] tv namev [=value]
- tv – тип переменной;
- namev – имя переменной;
- value – начальное значение переменной.
Если переменная объявляется как глобальная и ее начальное значение не указано, то системы BC 3.1 и BCB выделяют ей соответствующий участок памяти и заносят нули в выделенные байты. Однако из соображений переносимости программы не стоит рассчитывать на такую чистку памяти. Лучше принудительно задавать те или иные значения (в том числе и нулевые) – этот способ никогда не подведет.
Если переменная объявляется как локальная и ее начальное значение задано, то оно заносится в такую переменную при каждом вызове функции (при условии, что эта переменная не объявлена статической).
Объявление глобальной переменной тоже может сопровождаться спецификатором static . Это имеет смысл, когда полный текст программы разбросан по нескольким файлам. В этом случае статические глобальные переменные доступны только тем функциям, которые включены в тот же файл . Из других файлов эти переменные не доступны. Для ссылок на глобальные переменные , описанные в другом файле, обычно используют спецификатор extern (от англ. external – внешний):
double qq(int n,double r) < extern float eps; .
Глобальные переменные , объявленные в этом же файле, в таком дополнительном пояснении не нуждаются.
Для объявления именованных констант обычно используют следующую конструкцию:
const [tc] namec=value;
Источник: intuit.ru