possible loss of data due to type conversion

 

Друзья, помогите разобраться


int attrTicketPreviousSibling(int ticket)
{
        int ticket0 = OrderTicket();
        
        int retval = ticket;
        int ticket_parent = attrTicketParent(ticket); // possible loss of data due to type conversion
        
        if (ticket_parent >= ticket) return ticket;
        
        for (int i = ticket-1; i >= 1; i--)
        {               
                if (!OrderSelect(i, SELECT_BY_TICKET)) continue;
                //if (ticket == 3) {Print(i);}
                if (i == ticket_parent || attrTicketParent(i) == ticket_parent) {
                        retval = i;
                        break;
                }
        }
        
        bool success = OrderSelect(ticket0, SELECT_BY_TICKET);
                
        return retval;
}
 
Paul Collins:

Друзья, помогите разобраться


Если вы, как и я, совсем не знаете аглицкий язык, то переведите со словарём и посмотрите какого типа значение возвращает функция attrTicketParent

 
Alexey Viktorov #:

Если вы, как и я, совсем не знаете аглицкий язык, то переведите со словарём и посмотрите какого типа значение возвращает функция attrTicketParent


сменил на 

attrTicketPreviousSibling

ошибка ушла, туплю, спасибо!

 
Paul Collins #:


сменил на 

attrTicketPreviousSibling

ошибка ушла, туплю, спасибо!

Это была не ошибка, а предупреждение. И работать могло совсем без проблем. А вот замену функции надо производить с полным пониманием что делаешь. В вашем случае достаточно было явно привести значение функции к типу…

        int ticket_parent = (int)attrTicketParent(ticket); // и никаких предупреждений………
 
Alexey Viktorov #:

Это была не ошибка, а предупреждение. И работать могло совсем без проблем. А вот замену функции надо производить с полным пониманием что делаешь. В вашем случае достаточно было явно привести значение функции к типу…


Благодарю!