değişkenlerin davranışlarıyla ilgili yanlış anlamalar - sayfa 4

 
wlad :
genel olarak, geliştiricilerin dikkat etmesini istiyorum

Peki ya geliştiriciler? Değişkeninizi sunucularında saklamalarını istiyor musunuz? Elektrik kesintileri nedeniyle bilgisayarınız askıda kalırken ve yeniden başlatılırken?
 
wlad :

kendin dene

evet ne hakkında olduğunu görün


sana sempati duyuyorum
 

burada ne hakkında konuşuyorsun?

henüz gerçek cevaplar yok

yüzündeki gerçek - söve var

 
Gerçekten yapamam (birinin kafasında)
 
Vinin :
Gerçekten yapamam (birinin kafasında)
bunun neden olduğunu bana açıklayabilir misin
 
Her şey sana zaten açıklandı, sadece başkalarının görüşlerini duymak istemiyorsun
 
Vinin :
Her şey sana zaten açıklandı, sadece başkalarının görüşlerini duymak istemiyorsun

niye ya

harici bir değişken değiştiğinde, global olanın değerini aldığını söylediği yerde

 

ve sadece tanga ile olur

diğer türlerle iyi çalışır

neyi yanlış yaptığımı açıkla

 

Dizeler ve int'ler için davranışı karşılaştırmak için bir örnek vereceğim

 extern string ValueString = "DDD" ;
extern int     ValueInt    = 10 ;  
     
string tempString= "" ;
int     tempInt= 0 ;

bool    firsttime= true ;
       
int start() {
   string txt= StringConcatenate ( "  ValueString: " ,ValueString, " < >" , "  tempString: " ,tempString, "\n" ,
                                 "  ValueInt: " ,   ValueInt,   " < >" , "  tempInt: " ,tempInt, "\n" ,
                                 "  firsttime: " ,firsttime);    
   if (firsttime) {     // значение присваевается тольо ОДИН раз   
      tempString=ValueString; 
      tempInt=ValueInt; 
      firsttime= false ; 
   }

   Print (txt);
   Comment (txt);                              
}

ve günlük çıktısı:

1. Uzman Danışman Yükleme ve Global Değişkenleri Başlatma

2. dış değişkenleri global değişkenlere geçirmek. bool ilk kez aracılığıyla uygulanan bir kerelik transfer

3. dış değişkenleri değiştirme

4. farkı burada görebilirsiniz

tempString, ValueString'in değerini alıyor - yanlış

tempInt, ValueInt değişse bile değerini korur - doğru

5 ve 6, 3 ve 4 ile aynı


lütfen dizenin neden farklı davrandığını açıklayın

int doğru iken

özel cevaplar istiyorum

 
wlad :

lütfen dizenin neden farklı davrandığını açıklayın

int doğru iken

somut cevaplar istiyorum

Çok spesifik olamam. bağlantı kopmalarını arayın. elimden geldiğince.

daha kısa. forumda bir yerde, derleyicinin aynı değerlere sahip string değişkenleri bulduğunda, onları gerçek bir belleğe yerleştirdiğini ve ona başvurması gereken herkese linkleri dağıttığını öğrendim.

onlar. muhtemelen haklısın, muhtemelen tek bir değişkenle yazılmışlar. fikir, optimize edicinin bir sövesi olabilir. servis masasına yazın, örneğinizi kodla birlikte gönderin. tamir edecekler.

aynı zamanda burada çoğaltın: MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı

--

// ve danışmanın işini onarmasını beklemeden onarırdım. sorma, bilmiyorum. ama benim pratiğimde bu tür aksaklıkları atlamanın bir yolu olmadığına dair hiçbir durum yoktu.