[BorlandC] главный файл видел этот включенный файл?
Ты можешь делать
#include "file1.cpp"
из обоих файлов (как главного, так и не главного).
Тока в файле "file1.cpp" нужно в начале написать
#ifndef FILE1CPP_UNIC_CODE12345
#define FILE1CPP_UNIC_CODE12345
не важно что ты напишешь в этих define, лишь бы это были уникальные буквосочетания.
и в его конце написать
#endif
Это решит проблему?
Я это написала. Теперь он мне пишет "Unable to open file 2.def". 2.cpp - это main file. А что такое файл с расширением def?
Где и что ты написала? Как твои файлы называются, какой из них ты компилишь? Чуть подробнее, плиз...
#ifndef MATRIX_C
#define MATRIX_C
а в конце #endif
После этого в модуле 2.cpp ты можешь использовать функции, описанные в func.cpp. Надеюсь понятно, что наоборот, использовать функции, описанные в 2.cpp в модуле func.cpp у тебя не получится.
А проблема в чем?
Я хиромантией не занимаюсь, по звездам не гадаю. Еще подробнее. В чем ошибка? Из какого модуля какие функции ты вызываешь?
Б. Страуструп
1.6 Структура программы
Программа на С++ обычно состоит из большого числа исходных фай-
лов, каждый из которых содержит описания типов, функций, переменных
и констант. Чтобы имя можно было использовать в разных исходных
файлах для ссылки на один и тот же объект, оно должно быть описано
как внешнее. Например:
extern double sqrt(double);
extern instream cin;
Самый обычный способ обеспечить согласованность исходных файлов
- это поместить такие описания в отдельные файлы, называемые заго-
ловочными (или хэдер) файлами, а затем включить, то есть скопиро-
вать, эти заголовочные файлы во все файлы, где нужны эти описания.
Например, если описание sqrt хранится в заголовочном файле для
стандартных математических функций math.h, и вы хотите извлечь
квадратный корень из 4, можно написать:
#include <math.h>
//...
x = sqrt(4);
Поскольку обычные заголовочные файлы включаются во многие исход-
ные файлы, они не содержат описаний, которые не должны повторяться.
Например, тела функций даются только для inline-подставляемых функ-
ций (12) и инициализаторы даются только для констант (3.1).
За исключением этих случаев, заголовочный файл является хранилищем
информации о типах. Он обеспечивает интерфейс между отдельно компи-
лируемыми частями программы.
В команде включения include имя файла, заключенное в угловые
скобки, например <math.h>, относится к файлу с этим именем в стан-
дартном каталоге (часто это /usr/include/CC на файлы, находящиеся
в каких-либо других местах ссылаются с помощью имен, заключенных в
двойные кавычки. Например:
#include "math1.h"
#include "/usr/bs/math2.h"
включит math1.h из текущего пользовательского каталога, а math2.h
из каталога /usr/bs.
Здесь приводится очень маленький законченный пример программы, в
котором строка определяется в одном файле, а ее печать производится
в другом. Файл header.h определяет необходимые типы:
// header.h
extern char* prog_name;
extern void f;
В файле main.c находится
главная программа:
// main.c
#include "header.h"
char* prog_name = "дурацкий, но полный";
main {
f;
}
а файл f.c печатает строку:
// f.c
#include <stream.h>
#include "header.h"
void f {
cout << prog_name << "\n";
}
Скомпилировать и запустить программу вы можете например так:
$ CC main.c f.c -o silly
$ silly
дурацкий, но полный
Оставить комментарий
Tanya2009
Если я использую в одном файле другой, то как сделать так, чтобы главный файл видел этот включенный файл? <><>