Arduino - ¿Operador condicional? :

¿El operador condicional? : es el único operador ternario en C.

? : Sintaxis del operador condicional

expression1 ? expression2 : expression3

Expression1 se evalúa primero. Si su valor es verdadero, se evalúa expression2 y se ignora expression3. Si expresión1 se evalúa como falsa, expresión3 se evalúa y expresión2 se ignora. El resultado será un valor de expresión2 o expresión3 dependiendo de cuál de ellos se evalúe como Verdadero.

El operador condicional se asocia de derecha a izquierda.

Example

/* Find max(a, b): */
max = ( a > b ) ? a : b;
/* Convert small letter to capital: */
/* (no parentheses are actually necessary) */
c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;

Reglas del operador condicional

  • expression1 debe ser una expresión escalar; expression2 y expression3 deben obedecer una de las siguientes reglas.
  • Ambas expresiones deben ser de tipo aritmético.
  • expression2 y expression3 están sujetos a las conversiones aritméticas habituales, lo que determina el tipo resultante.
  • > Ambas expresiones deben ser de tipo nulo. El tipo resultante es nulo.