/ Zmienna referencyjna / C ++ między plikami - c ++, zmienne

Zmienna referencyjna C ++ w plikach - c ++, zmienne

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 № 1

Jest 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.