Файл – любая совокупность данных, имеющая отдельную спецификацию и включенная в каталог (папку) операционной системы. Формат спецификации: <имя>.<тип (расширение)>
Принятые по умолчанию типы файлов для языков 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 */