Kezdőoldal » Számítástechnika » Programozás » Az extern kulcsszó arra van,...

Az extern kulcsszó arra van, hogy egy változót definiálás nélkül tudjak deklarálni? C++

Figyelt kérdés
2012. okt. 28. 23:11
 1/4 iostream ***** válasza:
45%

Látom, kezded érteni :)

Igen, arra való. Kivéve, ha const, mert akkor azt jelenti, hogy külső linkelésű legyen a név, azaz látható legyen másik fordítási egységben is.

2012. okt. 29. 00:56
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

"Kivéve, ha const, mert akkor azt jelenti, hogy külső linkelésű legyen a név, azaz látható legyen másik fordítási egységben is."

Ezt nem értem.

2012. okt. 29. 01:21
 3/4 A kérdező kommentje:

extern int x ; deklarálom.

És hogyan definiáljam utána ?

2012. okt. 29. 01:29
 4/4 iostream ***** válasza:

Másik fordítási egységben, simán int x;. Az extern int x; azt mondja a fordítónak, hogy van itt egy int típusú x név, amit valahol máshol definiálok. Tehát nem lesz egy inted abban a fordítási egységben, ami lesz viszont az egy linker hivatkozás kívülre, és linkelésnél fogja keresni a többi állományban.


"Ezt nem értem."


A const változók alapértelmezésben statikusak, azaz minden fordítási egységben lehet ugyanaz a név, nem fognak ütközni. Ez azért jó, mert ha fejállományokba rakod bele a constot, amit mindenhova behúzol, nem lesz ütközés. Az extern itt azt csinálja, hogy úgy fog viselkedni, mint egy nem-const változó, azaz csak egy lehet belőle az összes fordítási egység között.

2012. okt. 29. 08:34
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!