[RESUELTO] Operadores (no están en "resources")

Buenas,

Estoy siguiendo una serie de tutoriales que ha caído en mis manos, pero buena parte del código viene sin explicación, lo cual me obliga a indagar un poco más (lo cual es bueno para aprender).

Pero hay unas líneas que utiliza unos operadores o símbolos que no conozco y no los encuentro en la sección /Resources/Reference de este sitio web. A ver si alguien me ayuda a descifrarlo. Pego una fracción del código (la función que lo incluye):

void updateAnalogInput(int zone, int index) {
  int input_num = analogInputs[zone][index];
  int value = analogRead(input_num);
  int minValue = value > ANALOG_INPUTS_THRESHOLD ? value - ANALOG_INPUTS_THRESHOLD : 0;
  int maxValue = value < 1023 - ANALOG_INPUTS_THRESHOLD ? value + ANALOG_INPUTS_THRESHOLD : 1023;
  if ((analogInputsValues[zone][index] < minValue) || (analogInputsValues[zone][index] > maxValue)) {
    analogInputsValues[zone][index] = value;
    publishInput(zone, input_num, value);

Esta función actualiza un array que contiene los valores de las entradas analógicas cuando alguna entrada ha variado (sólo actualiza cuando la magnitud del cambio supera un umbral) y "publica" el nuevo valor de la entrada (mediante mqtt).

Las líneas 4 y 5 (donde se asigna valor a minValue y maxValue) son las que no acabo de entender. No conozco cómo actúa el símbolo '?' y el ':' , así como el operador de comparación en el contexto de la asignación.

Recurro a vosotros porque ya no sé dónde buscar estas cosas (introducir '?' o ':' en el buscador, como supondréis, no ayuda mucho...).

Como siempre, cualquier ayuda es de agradecer.

Saludos

Los operadores ? : funcionan así
Si la expresión es VERDADERA se ejecuta lo que esta luego del ? y si es falsa lo que esta luego de :

Entonces algo como

  estado = digitalRead(pin); // lectura de boton 
  Serial.println(estado?"Esta en ON":"Esta en OFF");

Como verás hace muy facil tomar decisiones sobre dos situaciones.

Muchísimas gracias una vez más Surbyte,

Más claro imposible!

Quizás te puedas ayudar en un futuro de ArduWiki.

Para que puedas buscar información, se llaman "operadores ternarios".