Включение файлов в текст программы

Файл – любая совокупность данных, имеющая отдельную спецификацию и включенная в каталог (папку) операционной системы. Формат спецификации: <имя>.<тип (расширение)>

Принятые по умолчанию типы файлов для языков C и C++:

.c - исходный текст на языке C,

.cpp - исходный текст на языке C++,

.obj - объектный (оттранслированный) модуль,

.exe - загрузочный (выполняемый) модуль,

.h - заголовочный (header) файл.

Включение файла в текст программы выполняется с помощью директивы вида:

#include {"<спецификация_файла>"|<<спецификация_файла>>}

Пример.

#include<stdio.h>

#include "my.h"

Обычно в текст программы включают другие программные файлы (.c или .cpp) или заголовочные (.h) файлы. В заголовочные файлы принято включать общие для различных процедур символические константы, прототипы функций, другие описания и определения. Очень много .hфайлов входят в состав транслятора, например, stdio.h описывает стандартный пакет библиотечных функций ввода-вывода, в частности функции scanfи printf, math.h содержит прототипы всех библиотечных математических функций.

В директиве заключение спецификации файла в "..." предписывает искать включаемый файл в папке, где находится вызов программы, а в случае его ненахождения там в определенных в среде разработки папках. Применение для этой цели <...> выполняет поиск файла в папках, определенных в среде разработки.

Теперь приведем в качестве примера законченную работоспособную программу.

#include <stdio.h>

#define SIZE 4

/*******************************************************/

/* ВЫЧИСЛЕНИЕ КВАДРАТИЧНОЙ ФОРМЫ */

/******************************************************/

void main(void){

float u[SIZE], /* Входной вектор */

b[SIZE][SIZE], /* Входная матрица */

v[SIZE], /* Вектор b*u */

z, /* Результат */

scalar(float [ ], float [ ]); /* Скалярное произведение векторов */

int i, j;

void matrix(float[ ][SIZE], float[ ], float[ ]);

printf("Исходный вектор:\n");

for(i=0; i<SIZE; i++){

scanf("%f", &u[ i ]);

}

printf("Исходная матрица:\n");

for(i=0; i<SIZE; i++){

for(j=0; j<SIZE; j++){

scanf("%f", &b[ i ][ j ]);

}

}

matrix(b, u, v );

z=scalar(v, u );

printf("\n\n\nКвадратичная форма равна %.5g\n", z);

}/* End main */


/* Умножение матрицы на вектор */

void matrix(float a[ ][SIZE], float x[ ], float y[ ]){

int i, j;

for(i=0; i<SIZE; i++){

for(y[ i ]=j=0; j<SIZE; j++){

y[ i ]+=a[ i ][ j ]*x[ j ];

}

}

}/* End matrix */

/* Скалярное произведение векторов */

float scalar(float x[ ], float y[ ]){

int i;

for(z=i=0; i<SIZE; i++){

z+=x[ i ]*y[ i ];

}

return z;

}/* End scalar */