2017-04-01 1 views

Répondre

2

Les deux codes ne sont pas équivalentes, parce que le premier effectue la réaffectation sans condition, tandis que le second affecte uniquement lorsque la condition est vraie.

L'équivalent du premier code aurait une branche else attribution API_FAIL-status:

if (Hcill_state == HCILL_STATE_AWAKE) 
{ 
    status = GPIO_Request (GPIO_5,13); 
} 
else 
{ 
    status = API_FAIL; 
} 
2

Depuis, l'opérateur ternaires définit comme:

Condition ? if true : if false 

Dans votre deuxième cas, vous avez une opération true mais pas pour false. Donc, ces codes ne sont pas égaux, car dans le second, vous n'avez pas d'autre instruction. Ce sera égal si vous avez écrit le second comme ceci.

if (Hcill_state == HCILL_STATE_AWAKE) 
{ 
status = GPIO_Request (GPIO_5,13); 
} 
else 
{ 
status = API_FAIL; 
}