Мистика в коде

 

Иеется код получения значения линий стохастика 

if(CopyBuffer(handle,0,0,1,MAIN_LINE1)<0) 

aaa=MAIN_LINE1[0];

Perv_mail_line=MAIN_LINE1[0];

Print("1"," ",Perv_mail_line," ",MAIN_LINE1[0]);


В таком варианте переменной значение присваивается как положено

if(CopyBuffer(handle,0,0,1,MAIN_LINE1)<0) 

//aaa=MAIN_LINE1[0];

Perv_mail_line=MAIN_LINE1[0];

Print("1"," ",Perv_mail_line," ",MAIN_LINE1[0]);

Переменная  Perv_mail_line становится равной 0.0

Это глюк или я чего то не понимаю??

 
Mikhail Shikin:

if(CopyBuffer(handle,0,0,1,MAIN_LINE1)<0) 

//aaa=MAIN_LINE1[0];

Perv_mail_line=MAIN_LINE1[0];

здесь по условию if() отрабатывается присвоение  Perv_mail_line.

чтобы вам не путаться -- ставьте операторные скобки:

if(CopyBuffer(handle,0,0,1,MAIN_LINE1)<0)
{
        aaa=MAIN_LINE1[0];
}
Perv_mail_line=MAIN_LINE1[0];
 

Появился умный человек мистика пропала. Спасибо.

Вот так все работает.

if(CopyBuffer(handle,0,0,1,MAIN_LINE1)<0) 

{}

//aaa=MAIN_LINE1[0];

Perv_mail_line=MAIN_LINE1[0];

Print("1"," ",Perv_mail_line," ",MAIN_LINE1[0]);

 
Mikhail Shikin:


Это глюк или я чего то не понимаю??

Не понимаете.
Вообще, блок кода после if/else/do/while крайне желательно обрамлять скобками {}, даже если этот блок состоит из одной команды.
Причина обращения: