¿cuál es este código para el factor de potencia? No entiendo? [cerrado]

-2

Este código es para el cálculo del factor de potencia, pero no puedo entenderlo. ¿Qué hacen los símbolos (?) Y (:).

¿Cómo sustituyo el código estándar?

Pow_fac = (Pow_app > 0 && Pow_eff > 0) ? ((int64_t)Pow_eff * 100 + Pow_eff / 2) / Pow_app : 0;
    
pregunta Amin

1 respuesta

1

Es un condicional en línea , básicamente una declaración en línea IF-THEN-ELSE:

Value = (test expression) ? (true value) : (false value);

Por ejemplo

Pow_fac = (Pow_app > 0 && Pow_eff > 0) ? ((int64_t)Pow_eff * 100 + Pow_eff / 2) / Pow_app : 0;

se puede reescribir como:

if (Pow_app > 0 && Pow_eff > 0) 
    Pow_fac = ((int64_t)Pow_eff * 100 + Pow_eff / 2) / Pow_app;
else
    Pow_fac = 0;

Es un método muy útil para (como en este caso) decidir qué asignar a una variable, o tomar una decisión sobre qué valor pasar a una función.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas