2013-10-24 6 views
1

Извините за неоднозначный заголовок, но я просто не знал, как это сделать.Вызов функции + вычисление возвращаемого значения + сравнение вычисленного значения в C

Во всяком случае, я хочу кусок кода, чтобы сделать то же самое, это делает в одной строке (в если заявление)

ret= fee(XYZ); 
if((fii(ret) && foh(ret)) !=0) 
{ 
    //do something 
} 

нравится ставить все, что в чем-то вроде

if(_______FUM________)  
{ 
    //do the same thing 
} 

ли что я могу сделать для этого? Ответ, вероятно, смотрит на меня в лицо. Но я застрял здесь.

+1

Почему вы хотите это сделать? Вы платите за хранение кода с помощью новой строки? – Jon

+0

Нет. Я на самом деле редактирую фрагмент кода, который содержит много инструкций if-else, и мне понадобилось бы намного больше редактирования, если бы я использовал две строки. – umayneverknow

+1

Возможно, лучшим решением этой проблемы было бы реорганизовать код, чтобы он не копировал макароны? – Jon

ответ

3

Вы можете использовать comma operator:

if(ret = fee(XYZ), (fii(ret) && foh(ret)) !=0) 

Но почему ?!

(Также !=0 кажется излишним.)

+0

Это работает блестяще! Большое спасибо! – umayneverknow

+0

И часть 0 была плохим примером, потому что я не проверяю! = 0, но фактически определенный макрос. – umayneverknow

Смежные вопросы