Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как проверять результат типа BOOL


Автор: xTr1m 14.1.2013, 12:17
Доброго времени суток. В книге "Рихтер Дж.  Windows для профессионалов создание эффективных Win32" наткнулся на такую запись "Если вызов функции (возвращающий BOOL) заканчивается неудачно, возвращается 0; в остальных случаях возвращаемое значение отлично от О. (Не пытайтесь проверять его на соответствие TRUE или FALSE.)" Вот собственно вопрос, а почему нельзя проверить именно на FALSE. C TRUE, как я понимаю, штука в том, что оно определено как 1, а функция может вернуть хоть 100. Но FALSE ведь 0, почему нельзя писать?
Код

if(FALSE == SomeAPIFunction())
{
...
}

Автор: Alca 14.1.2013, 12:39
можно

Автор: Alca 14.1.2013, 13:55
Цитата

Если вызов функции заканчивается неудачно, возвращается 0; 
  в остальных случаях возвращаемое значение отлично от 0.
  (Не пытайтесь проверять его на соответствие TRUE, лучше
  проверить его на соответствие FALSE
.)

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

http://www.google.ru/url?sa=t&rct=j&q=%D0%BD%D0%B5%20%D0%BF%D1%8B%D1%82%D0%B0%D0%B9%D1%82%D0%B5%D1%81%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C%20%D0%B5%D0%B3%D0%BE%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5%20true%20%D0%B8%D0%BB%D0%B8%20false&source=web&cd=2&ved=0CDUQFjAB&url=http%3A%2F%2Fwww.piter.com%2Fupload%2Fcontents%2F978538800205%2F978538800205_p.pdf&ei=ouPzUM2nBYaYtQblpIDoBA&usg=AFQjCNFvVIUeFbBpXtY5Xot5-u0wWxxPtg&bvm=bv.1357700187,d.Yms

Автор: xTr1m 14.1.2013, 14:03
Нет. Просто в моем издании написано именно так (без ", лучше проверить его на соответствие FALSE"). Но все равно спасибо, теперь я хотя бы знаю, что могу замечать неточности в книгах гуру =))

Автор: Alca 14.1.2013, 14:15
Цитата

Не пытайтесь проверять его на соответствие TRUE или FALSE

выбрось это издание, вдруг там еще что-то такое  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)