Объявление и определение переменной
Имеем файл ini.h
int n;
А также ini.cpp
n = 5;
Получаю ошибку: это объявление не содержит класс хранения или спецификатор типа
если сделать так
ini.h
int n = 5;
main.cpp
include "ini.h"
int main()
{
cout<<n;
}
Получаю ошибку: int n уже определено в ini.obj
Как же определить переменную в отдельном файле
Ответы (1 шт):
В ini.cpp вы что, просто пишете n = 5;? Без указания типа, не в функции?
Понятно, что такой фокус не работает — это и не объявление и не определение (нет типа).
Вообще-то использование глобальных переменных — это плохо... Но если уж вам надо ну просто позарез, да еще и в разных файлах...
ini.h
extern int n;
Сие слово — extern — поясняет компилятору, что это просто объявление, а определение будет дано где-то в другом месте. Просто, так сказать, "учти — если встретишь переменную n — то это переменная типа int".
ini.cpp
int n = 5;
main.cpp
// Как у вас и написано