Mám projekt, v ktorom musím odkazovať na premennú deklarovanú v jednom súbore CPP v inom, je to možné?
Ak áno, ako?
odpovede:
7 pre odpoveď č. 1Je možné, ak to deklarujete ako globálne (najvyššia úroveň, nad definíciou funkcie) a použijete výraz „extern;“ v iných súboroch, aby bol kompilátor známy.
// Main.cpp
#include <...>
int myNum;
int main(int argc, char** argv)
{
// MAGIC BE HERE
return 0;
}
a
// Second.cpp
#include <...>
extern int myNum;
int f()
{
return myNum * 2;
}
extern
zabraňuje kompilátoru v opätovnom pridelení pamäte, keď bola premenná pridelená v inom súbore.
2 pre odpoveď č. 2
Vytvorte súbor .h deklarujúci premennú, ktorú potrebujete extern
(niečo ako extern int X;
), potom ho zahrňte do každého súboru, ktorý túto premennú potrebuje. V jednom zo súborov .pp, ktorý prepájate, ho deklarujte bez extern
.