Этапы разработки программы. Разработка или выбор алгоритма решения поставленной задачи. Оформление документации на программу, страница 30

3.Статические переменные и функции.(static).

Если функция описана со спецификатором класса памяти static, — это делает ее недоступной для других файлов. Переменная с таким классом памяти имеет глобальное время существования, но их область действия ограничивается блоком, в котором она описана. Память для такой переменной выделяется один раз и остается занятой до окончания выполнения программы. Инициализация таких переменных осуществляется один раз во время компиляции, поэтому статические переменные можно инициализировать только константными выражениями.

При выходе из блока, в котором описана статическая переменная, переменная продолжает существовать, ее значение сохраняется, но она недоступна.

Пример:

void fanc1(void)

{ static int x=0;

printf("х=%d'', х);

х++;

}

void fanc2(void)

1 int x=0;

printf("x=%d,', х);

х++;

}

void main(void)

( int i;

for(i=0;i<10;i++)

fanc1(); Будет напечатано: О, 1, 2,…

for(i=0;i<10;i++)

fanc2(); Будет напечатано: О, О, О,…

Внешние переменные и функции.(extern)

Любая переменная, описанная в файле вне какой-либо функции и не имеющая спецификатора класса памяти, по умолчанию относится к классу памяти для внешних переменных. Такие переменные называются глобальными. Память для таких переменных отводится один раз и остается занятой до окончания работы программы. Область действия такой переменной — до конца файла. Доступ к внешним переменным возможен и из других файлов. Для того, чтобы можно было использовать переменную в других файлах, для нее следует явно указать класс памяти extern.

Тоже самое касается и функций. Для того, чтобы можно было использовать функцию в других файлах, ее нужно тоже явно объявить описателем extern

Создание многофайловых программ.

Создать многофайловую программу в среде программирования Borland C++ 3.1 можно двумя способами;

  1. С использованием меню Project;
  2. С помощью директивы препроцессора #include.

Пример создания многофайловой программы с помощью Project.

1)  Поместить в файл с именем prog1.C следующую функцию:

#include <stdio.h>

void SQR (int n)

{ printf (“i*i=%”,n*n);}

2)  поместить в файл с именем prog2.C следующую функцию:

#include <stdio.h>

extern void SQR (int n);

void main (void)

{ int i; clrscrl();

for (i=0; i<10; i++)

{printf (“i=%d”,i);

SQR (i);

}}

3)  С помощью команды Open Project меню Project можно загрузить существующий проект или создать новый. С помощью команды Add Item меню Project можнодобавить добавить в проект в проект файлы prog1.C и prog2.C

4)  Сохранить проект можно с помощью команды Save меню Options. После выполнения этой команды в текущем каталоге появляется файл проекта с расширением prj и именем, заданном при создании проекта.

5)  Для компиляции открытого проекта исполняются команды: - Build All (полная перекомпиляция всех файлов: Meke – избирательная перекомпиляция в EXE – файл) – Link EXE file – компоновка ЕХЕ-файла

Создание библиотек.

Библиотеки можно создавать с использованием project или с помощью программы библиотекарь: tlib.exe

Программа tlib.exe – позволяет создавать, изменять и редактировать библиотечные файлы типа lib.

Общий синтаксис вызова:

Tlib <имя библиотеки>[IC][опции][, список файлов]

Ключ: /С – различает символы верхнего и нижнего регистров в именах файлов, включенных в библиотеку;

Опции: +добавить файл с заданным именем

- удалить файл из библиотеки.

22. Файлы яз. С и Pascal

Файлы Pascal – это структура данных, представляющая  собой последовательность элементов одного типа, количество которых практически не ограниченно.

    Особенностью яз.С является отсутствие заранее спланированных структур файлов как в яз.Pascal.

    Файл в яз.С – это неструктурированное  последовательность байтов. В яз.С наряду с понятием файла используется понятие поток.

     Поток – это файл вместе с предоставляемыми средствами буферизации.