В c / c ++, если функция логическая, вы можете сделать трюк, подобный этому
function1() || function2();
, поэтому, если функция1 () не работает, функция2 () запускается.Я помню, что есть хитрость, чтобы сделать что-то вроде
function() || return false;
Но «вернуть ложь» не дает результата обратно.Подобные вещи распространены в других языках, таких как Perl.
Вопрос
function() || (x);
что я положил в х, чтобы я получил эквивалент
if(function()==false)
return false;
Редактировать
Я не собираюсь выбирать ответ и позволять голосам поднимать настроение.В любом случае вот решение:
сначала положите это куда-нибудь
#define treturn(x) ({return (x); 1;})
И теперь вы можете сделать это
function() || treturn(false)
или вернуть то, что вам нравится.Где возвратная часть происходит, только если function () == false.И вы можете использовать «&&» aswell
function() && treturn(false)
. В этом случае произойдет возврат, когда функция () == true.
Примечание Как уже упоминали многие люди,Ты не должен этого делать.И ds27680 выложил хорошую альтернативу