HLFX.Ru Forum
Показать все 3 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Вопрос оптимизации (https://hlfx.ru/forum/showthread.php?threadid=2760)


Отправлено fire64 16-04-2011 в 19:02:

Вопрос оптимизации

Какой вариант будет работать быстрее ?

C++ Source Code:
1
if( a != b || c !=d )
2
{
3
  printf( "Bad\n" );
4
}
5
else
6
{
7
  printf( "Good\n" );
8
}


C++ Source Code:
1
if( a == b && c ==d )
2
{
3
  printf( "Good\n" );
4
}
5
else
6
{
7
  printf( "Bad\n" );
8
}


правильно ли я понимаю, что первый, так как в случае если a не равно b, то проверка c и d уже выполняться не будет ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 16-04-2011 в 20:11:

Цитата:
fire64 писал:
правильно ли я понимаю, что первый, так как в случае если a не равно b, то проверка c и d уже выполняться не будет ?

Вообще говоря, варианты идентичны. Сначала выполняется первая проверка, если она проходит в первом варианте - то управление передается на первую ветку, или наоборот, если не проходит во втором варианте - управление передается на вторую ветку. И в обоих случаях второе условие вычислять незачем.
А вот если ветки else не будет - то первый вариант, видимо, быстрее. Но это уже совсем разные условия будут.

__________________

xaerox on Vivino


Отправлено Дядя Миша 16-04-2011 в 21:37:

Быстрее вот такой вариант:

C++ Source Code:
printf( %s\n", ( a == b && c == d ) ? "good" : "bad" );

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 01:29.
Показать все 3 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024