C返回和比较内联

She*_*don 0 c methods comparison return-value

我只想弄清楚这个方法做了什么,我知道必须有一种方法可以逐行排列,你能帮帮我吗?

谢谢

int
conditional ( int n, EXPRESSION * * o )
{
  return (evaluateExpression( *o++ )? evaluateExpression( *o ) : evaluateExpression( *++o ) );
}
Run Code Online (Sandbox Code Playgroud)

更新:这是evaluateExpression代码

int
evaluateExpresion ( EXPRESSION * e)
{
__asm
{
mov eax,dword ptr [e] 
movsx ecx,byte ptr [eax] 
test ecx,ecx 
jne salto1
mov eax,dword ptr [e] 
mov eax,dword ptr [eax+4] 
jmp final
salto1:
mov esi,esp 
mov eax,dword ptr [e] 
mov ecx,dword ptr [eax+8] 
push ecx  
mov edx,dword ptr [e] 
movsx eax,byte ptr [edx] 
push eax  
mov ecx,dword ptr [e] 
mov edx,dword ptr [ecx+4] 
call edx  
add esp,8
final:
} 
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 5

在该long return语句中使用的"三元表达式" 具有净效果,就像if/else语句一样,如下所示:

if (evaluateExpression(*o++)) {
  return evaluateExpression(*o);
} else {
  return evaluateExpression(*++o);
}
Run Code Online (Sandbox Code Playgroud)