GPS skylab skm53 et arduino mega 2560

Salut,

C'est ce qu'on appelle une opération ternaire. C'est une manière plus concise de faire un if / else.

Si on se concentre sur cette partie :

TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat

On teste la valeur de TinyGPS::GPS_INVALID_F_ANGLE. Si elle est différente de 0, le résultat vaut 0.0, sinon le résultat vaut flat.
Ensuite on compare ce résultat à flat.

On pourrait d'ailleurs décomposer ainsi :

float result = TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat;
Serial.print(flat == result, 6);

Ou encore écrire :

float result = 0;
if (TinyGPS::GPS_INVALID_F_ANGLE)
{
    result = 0.0;
}
else
{
    result = flat;
}
Serial.print(flat == result, 6);