Mam projekt, w którym muszę odwoływać się do zmiennej zadeklarowanej w jednym pliku CPP w innym, czy to możliwe?
Jeśli tak to jak?
Odpowiedzi:
7 dla odpowiedzi № 1Jest to możliwe, jeśli zadeklarujesz go jako globalny (najwyższy poziom, ponad dowolną definicją funkcji) i użyjesz „extern;” w innych plikach, aby poinformować kompilator.
// Main.cpp
#include <...>
int myNum;
int main(int argc, char** argv)
{
// MAGIC BE HERE
return 0;
}
i
// Second.cpp
#include <...>
extern int myNum;
int f()
{
return myNum * 2;
}
extern
zapobiega ponownemu przydzielaniu pamięci przez kompilator, gdy zmienna została przydzielona w innym pliku.
2 dla odpowiedzi nr 2
Utwórz plik .h deklarujący zmienną, której potrzebujesz extern
(coś jak extern int X;
), a następnie dołącz go do dowolnego pliku, który potrzebuje tej zmiennej. W jednym z plików .cpp, które łączysz, zadeklaruj je bez pliku extern
.