В настоящее время я вхожу в эту игру, но я не знаю, как это сказать. Я подозреваю, что кто-то укажет мне на дублирующий вопрос. Но... если у меня есть такой файл
parent.h:
...
include "child.h";
int foo;
...
и следующий исходный файл, который вызывается выше через его заголовочный файл:
child.c:
int display ()
{
printf ( "%d\n", foo );
}
Теперь это упрощенный пример, в настоящее время я использую C++, и я создаю объект, и этот объект вызывает метод другого объекта, например foo, объявленный в родительском файле. Естественно, я получаю следующую ошибку:
error: ‘foo was not declared in this scope
Есть ли способ обойти эту проблему с областью, или мне нужно передать foo в качестве параметра?
Обычно переменные находятся в исходных файлах...
parent.c
int foo = 0;
... и extern
редактор в заголовочных файлах...
parent.h
extern int foo;
Таким образом, кто-то #include
parent.h
будет extern
foo
.
parent.c
parent.h
не parent.c
быть parent.h
(без инициализации), а parent.h
должен быть child.h
, правильно?
int display();
, который часто помещается в заголовочный файл.