Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: warning: suggest parentheses around && within ||
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
fox1
Добрый день !
Как правильно расставить скобки в следующей конструкции:

if ( (_LC(code) == 'f') || (_LC(code) == 'g') && (-4 <= xexp) && (xexp < PREC) ) {

чтобы не возникал варнинг - warning: suggest parentheses around && within || ????

ключ -Wno-parentheses не хочется включать ...

Все ... разобрался ...

if ( (_LC(code) == 'f') || ( (_LC(code) == 'g') && (-4 <= xexp) && (xexp < PREC) ) )

больше не ругается ...
vadimuzzz
Цитата
Как правильно расставить скобки в следующей конструкции

это зависит от того, что вы имели в виду в своем выражении.
варнинг намекает на неопределенность, которая может возникнуть при прочтении выражения a||b&&c&&d. порядок вычисления, разумеется определен, и && выполняется в первую очередь, но это точно то, что вам надо? в выражении a||(b&&c&&d) логика та же, что и в a||b&&c&&d, но более очевидна.
demiurg_spb
Цитата(fox1 @ Jul 27 2010, 11:34) *
if ( (_LC(code) == 'f') || ( (_LC(code) == 'g') && (-4 <= xexp) && (xexp < PREC) ) )
И ещё Вы уж определитесь со стилем.
так
Код
(-4 <= xexp) && (PREC > xexp)

или, что на мой взгляд куда более читабельно:
Код
(xexp >= -4) && (xexp < PREC)


А все разговоры про дополнительный контроль ошибки вида
Код
(0 = x)
вместо
Код
(0 == x)
маразм всех паскальщиков.
Будьте благоразумны - пишите ВНЯТНО и единообразно - это одно из самых главных условий отсутствия ошибок...
fox1
Цитата(demiurg_spb @ Jul 27 2010, 21:28) *
И ещё Вы уж определитесь со стилем.


Это кусок кода из IARовской библиотеки ... там еще и не такие ляпы есть .....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.