русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Багатофайлові програми


Дата додавання: 2014-04-22; переглядів: 1901.


В невеликих за розміром програмах функцію main і всі інші функції доцільно записувати в одному текстовому файлі. Якщо програма велика і складна, то доцільно поділити її на декілька програмних файлів, код кожного з яких можна створювати і компілювати автономно.

У багато файлових програмах питання видимості постають у межах одного файлу та на меж файловому рівні. Встановлено такі правила:

1) об’єкти, оголошені на зовнішньому рівні (тобто між функціями), є частково глобальними, область їх дії – від точки оголошення до кінця програмного файлу;

2) щоб звернутись до глобальної змінної, описаної в іншому файлі, необхідно в поточному файлі оголосити цю змінну з специфікатором extern;

3) функції є глобальними об’єктами, тобто вони описуються тільки один раз, областю їх дії є вся програма;

4) прототипи функцій є частково видимими, вони діють в межах одного програмного файлу.

Згідно з третім правилом кожна функція повинна бути описана тільки один раз в програмі у якомусь з файлів. Для звертання до функції з інших файлів або перед її описом у тому ж файлі треба попередньо вказати прототип функції. Областю дії прототипу функції є один програмний файл, тому в кожному файлі програми треба окремо оголошувати прототипи всіх необхідних функцій.

Зазвичай створюють заголовний файл, в якому записують декларації шаблонів структурних типів і прототипи функцій і файл з розширенням срр, в якому функції описані повністю. Наприклад:

 

#include <iostream>

#include "fibonachi.h"

using namespace std;

int main( ) {

cout << fib( 46 );

}

// fibonachi.h

#ifndef FIBONACHI

#define FIBONACHI

long fib( long n );

#endif

// fibonachi.cpp

#include "fibonachi.h"

static long knownf[ 47 ];

void init_fibo( void ) {

knownf[ 0 ]=0;

knownf[ 1 ]=1;

for( int i = 2; i < 47; i++ )

knownf[ i ] = -1;

}

long fib( long n ) {

static int num;

if ( ++num == 1 ) init_fibo( );

if ( knownf[ n ] != -1 )

return knownf[ n ];

else {

knownf[ n ] = fib( n - 1 ) + fib( n - 2 );

return knownf[ n ];

}

}


<== попередня лекція | наступна лекція ==>
Специфікатори глобальних змінних | Робота з файлами. Звертання до файлів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн