непонятки с поведением переменных - страница 3

 
valenok2003:


Влад, здесь ошибка, инициализация происходит каждый раз, когда вы изменяете внешние параметры. И дело как раз в этом, если речь об ините.

дорогой валенок

да не в инете же дело

читайте последний пост с примером

 
wlad:

приведу подобный пример

значение первой переменной передаётся второй переменной всего лишь один раз и значение второй переменной не должно менятся при дальнейшем исполнении программы

однако при каждом изменении первой переменной - меняется и вторая, что не должно быть

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

   Print(txt);
   Comment(txt);                              
}

первая переменная это Value или temp_??? каким образом вы её изменяете? Вы изменяете значение Value в сете, верно?

затем вы нажимаете кнопку ОК, и

переменные вновь получают свои первоначальные, вами описанные значения

string temp_=""; 
bool   firsttime=true;

при каждом изменении Value через set эта процедура повторяется

 

попробуйте изменять Value программно

extern string Value = "O";
       
string temp_="";
bool   firsttime=true;
int Cnt = 0;
       
int start() {
   
   Value  = "O "+Cnt; 
   Cnt++;
   string txt=StringConcatenate( "  Value: ",Value,"\n",
                                 "  temp_: ",temp_,"\n",
                                 "  firsttime: ",firsttime);    
   if(firsttime) { temp_=Value; firsttime=false; } // значение присваевается тольо ОДИН раз   
   Print(txt);
   

и вы увидите, что значение temp_ и firsttime изменятся один раз и больше не будет изменяться

 
valenok2003:

попробуйте изменять Value программно

и вы увидите, что значение temp_ и firsttime изменятся один раз и больше не будет изменяться

это явно

я же говорил только приизменении внешной переменной

 
valenok2003:

первая переменная это Value или temp_??? каким образом вы её изменяете? Вы изменяете значение Value в сете, верно?

затем вы нажимаете кнопку ОК, и

переменные вновь получают свои первоначальные, вами описанные значения

при каждом изменении Value через set эта процедура повторяется


да не первоначальные а с внешней переменной extern string

вы читать не хотите внимательно

я многократно это уже писал

проблема возникает только с переменными типа string c другими типами без проблем!


 
valenok2003:

первая переменная это Value или temp_??? каким образом вы её изменяете? Вы изменяете значение Value в сете, верно?

затем вы нажимаете кнопку ОК, и

переменные вновь получают свои первоначальные, вами описанные значения

при каждом изменении Value через set эта процедура повторяется

откуда у вас эта ложная информация

вы сами то сначало проверте и поймоте что ето не так

в справке всё описано

я привёл пример

а вы выдумываете чего нет

 
в общем хотелось бы чтобы разработчики обратили внимание
 
wlad:
в общем хотелось бы чтобы разработчики обратили внимание

Может нам нужно ник-нэймами поменяться? Или это такой прикол?
 

протестите сами

да увидите о чём речь идёт

 
wlad:
в общем хотелось бы чтобы разработчики обратили внимание

Да причём тут разработчики? Вы хотите чтобы они Вашу переменную у себя на сервере хранили? Пока у Вас комп виснет и перезагружается из-за перебоев с электричеством?
Причина обращения: