PDA

Tam Sürümünü Görmek İçin : c++ da extern nedir?


hgedek
30/03/2007, 07:36
extern nedir?
niçin kullanılır?
nerelerde tercih edilmelidir?


mr1yh1
30/03/2007, 10:50
aynı değişkene farklı cpp dosyalarından ulaşmak istiyorsan kullanırsın.
değişken sayfalardan sadece birinde tanımlanmıştır.

bunu global değişken kullanımı olarak düşünebilirsin.
programının birçok yerinden bu veriye erişmek istiyorsundur.

global değişkenler iyi değildir.
bu şeyler sabit ise bir header içerisinde #define ile tanımlanmaları daha iyi.
(bu benim şahsi fikrim, #define a düşman birsürü C++ programcısı var. )
yok değişken iseler, program içerisinde nerede/nasıl değiştirildiklerinin takibi zorlaşır.

bunun yerine, değişkenleri fonksiyonlara parametre olarak geçirebilirsin,
ya da OOP kullanıyorsan iyi bir dizayn ile çözebilirsin.

bu değişkeni ben tanımlamadım diyorsan, o ayrı bir konu...

hgedek
30/03/2007, 13:53
Teşekürler.Gerçekten özet oldu.

quasimodo
30/03/2007, 15:48
Bir modulde extern ile tanimlanmis bir degiskenle karsilasan
bir derleyici bellekte bu degisken icin bir yer ayirmaz
ve bu degiskenin bellekte nerede oldugu konusunda da bir fikri yoktur.

Bu degiskenin yerini bulma gorevini baglayiciya birakilmisir. Tipki
fonksiyonlardaki gibi zaten fonksiyonlar default olarak extern dur.

Eger bu degisken gercektende baska bir modulde tanimlanmamissa
derleme islemi basarili olsada baglama sirasinda hata ile karsilasilir...

Euclides
30/03/2007, 16:16
birde extern "C" {....} vardır...

Akın Öcal
30/03/2007, 17:48
Eger ilgini cekerse Kaan Arslan'ın x86 asm ders notlarında , extern in cok detaylı aciklaması var , exterrn kullanımının obj dosyalarına etkisini cok güzel anlatiyor

BetulSahin
31/03/2007, 01:16
Akın Öcal bahsettiğin dders notları için http://www.csystem.org/ a baktım göremediim .Eğer nette varsa linkini yollar mısın rica etsem.

Akın Öcal
31/03/2007, 01:19
seapport ya da cdernek yahoo grouplarından isteyebilirsin

BetulSahin
31/03/2007, 01:20
teşekkürler