C++-ban az extern int a; utasítás csak globális változók esetén használható, ugye?
mivel arra való, így igen.
Ezzel jelzed a fordítónak, hogy az a változót globálisként deklarálod.
Én azt hittem, hogy azt jelöljük vele, hogy egy másik fájlban definiáltuk az adott változót.
Mert ugye függvényblokkokon kívül (globálisként) lehet így is definiálni egy globális változót:
int a;
Lokális változókkal nem működik.
Példa:
void func() {
int local_variable = 0;
if (true) {
extern int local_variable;
local_variable++; // Error: Undefined reference to local_variable
}
}
Előző azért kapsz undefined hibát mert nem létező változóra hivatkozol. De a deklarált változókat mindig definiálni kell mielőtt használni próbálnánk.
Ezért a példát helyesen így néz ki:
void func() {
int local_variable = 0;
if (true) {
extern int local_variable;
int local_variable = 0;
local_variable++; // Error: Undefined reference to local_variable
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!