Так что у меня возникла проблема с объявлением глобальной переменной (в заголовке) и ее использованием. Я прочитал несколько файлов заголовков и как они работают, но я не понимаю, почему мой код не работает.Проблема с заголовками и глобальной переменной
Вот что у меня есть (в упрощенном виде):
Главная:
// main.cpp
#include "source.hpp"
int main()
{
return variable;
}
Источник:
// source.cpp
#include "source.hpp"
variable = 17;
Заголовок:
// source.hpp
#ifndef __SOURCE_HPP_INCLUDED__
#define __SOURCE_HPP_INCLUDED__
extern int variable;
#endif // __SOURCE_HPP_INCLUDED__
Я пробовал с extern в файле заголовка. Я получаю эту ошибку при попытке (скомпилировать в источнике): 'variable' не называет тип Что я не понимаю правильно?
Кроме того, когда я объявляю ту же переменную в main.cpp, компилятор отбрасывает ошибку об «переопределении» переменной. Почему это?
Имена, которые содержат два последовательных символов подчеркивания ('__SOURCE_HPP_INCLUDED__') и имена, которые начинаются с символа подчеркивания последующим прописной буквы зарезервированы к реализация. Не используйте их. –
Возможный дубликат [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-how-do-i-fix) – IInspectable