C Использовать переменную, определенную в файле, включаемом из

0

В настоящее время я вхожу в эту игру, но я не знаю, как это сказать. Я подозреваю, что кто-то укажет мне на дублирующий вопрос. Но... если у меня есть такой файл

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 в качестве параметра?

Теги:
scope
include

2 ответа

3
Лучший ответ

Я верю, что вы ищете экстерна.

РЕДАКТИРОВАТЬ:

Добавление некоторой исходной связи.

  • 0
    это работает с функциями тоже?
  • 0
    Для функции вам просто нужен прототип int display(); , который часто помещается в заголовочный файл.
1

Обычно переменные находятся в исходных файлах...

parent.c

int foo = 0;

... и extern редактор в заголовочных файлах...

parent.h

extern int foo;

Таким образом, кто-то #include parent.h будет extern foo.

  • 0
    Я думаю, что вы сделали ошибку. parent.c parent.h не parent.c быть parent.h (без инициализации), а parent.h должен быть child.h , правильно?
  • 0
    @ Puk14 Нет ошибок. :-D Но есть много способов достичь той же цели.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню