Pular para o conteúdo

Dúvida sobre return [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Dúvida sobre return [RESOLVIDO]

Enviado em 13/11/2016 - 18:03h

Boa tarde, eu vi essa função que compara duas strings e não entendi o que ela está retornando.
int compare_employee(const struct employee* left, const struct employee* right) {
int gender = strcmp(left->gender, right->gender);
return (gender ? gender : (left->id - right->id));
}
Peço desculpas ja por ser uma pergunta meio besta, mas realmente não entendi o que esta acontecendo no return, o porque desse interrogação (?) e dos dois pontos (:)

Responder tópico

2. Re: Dúvida sobre return

Melhor resposta

Enviado em 14/11/2016 - 02:09h

O operador ternário é uma forma de conseguir uma expressão cujo resultado depende de alguma condição.

Para ajudar a entender, penso que exemplo é bem conveniente.

a=b? c: d; 
É funcionalmente equivalente ao seguinte.

if(b)
a=c;
else
a=d;

3. Re: Dúvida sobre return [RESOLVIDO]

Enviado em 14/11/2016 - 02:15h

Se gender for igual a zero, retorna a diferença de dois valores dentro da estrutura recebida pela função.
Se não for, então retorna gender mesmo.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

4. Re: Dúvida sobre return [RESOLVIDO]

Enviado em 14/11/2016 - 10:12h

paulo1205 escreveu:

O operador ternário é uma forma de conseguir uma expressão cujo resultado depende de alguma condição.

Para ajudar a entender, penso que exemplo é bem conveniente.

a=b? c: d; 


É funcionalmente equivalente ao seguinte.

if(b)
a=c;
else
a=d;
Ah sim, nossa colega, obrigado
Ajudou bastante :)

5. Re: Dúvida sobre return [RESOLVIDO]

Enviado em 14/11/2016 - 10:30h

listeiro_037 escreveu:

Se gender for igual a zero, retorna a diferença de dois valores dentro da estrutura recebida pela função.
Se não for, então retorna gender mesmo.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden
Ah sim, muito obrigado
Agora fez sentido :)

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder