Dúvida sobre return [RESOLVIDO]

1. Dúvida sobre return [RESOLVIDO]

Henrique Cesar
henriquecb

(usa Arch Linux)

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 (:)


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

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]

Perfil removido
removido

(usa Nenhuma)

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]

Henrique Cesar
henriquecb

(usa Arch Linux)

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]

Henrique Cesar
henriquecb

(usa Arch Linux)

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 :)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts