Difference entre uint8_t et int

Bonjour à tous,

Je voudrais savoir si sur un test if il y a une différence entre un uint8_t et un int, car sur le test suivant:
Pour info les variables hh et ss sont déclaré en uint8_t.

if ((hh != tabDH[4].toInt()) || (ss != tabDH[5].toInt()))
    {
        Serial.println(F("Fichier memoDH.txt OK"));
        actualiserRTC(a, m, j, hh, mm, ss);

    }

Que les valeurs soit identiques ou différentes le if et toujours validé à True, donc les lignes du if sont toujours exécuté.

Merci d'avance

Les uint8_t sont promus en int pour les opérations de bases

(Et toInt() renvoie en fait un long)

Si le if est validé c’est qu’une des deux conditions est vraie (au moins)

ne postez pas de snippets (Snippets R Us!) préférez un code minimaliste qui démontre votre souci

Merci J-M-L,

Désolé pour le snippets, et merci pour l'info, j'ai trouvé mon erreur.

Bravo

Si vous le pouvez essayez d’éviter les String dans vos tableaux

Pourquoi éviter les String dans les tableaux ?

Car là je dois récupérer des valeurs numérique dans un fichier texte avec le code ci-dessous.
Mais il y a t il un moyen de les récupérer en int, car pour moi cela ne pouvait ce faire qu'avec des String et un tableau me paraissait le plus pratique.

for(int i=0; i<6; i++)
  {

    tabDH[i] = monFichierDH.readStringUntil('\n');
  }
  if ((a != tabDH[0].toInt()) || (m != tabDH[1].toInt()) || (j != tabDH[2].toInt()) || (hh != tabDH[3].toInt()) || (mm != tabDH[4].toInt()) || (ss != tabDH[5].toInt()))
  {
    Serial.println(F("Fichier memoDH.txt OK"));
    actualiserRTC(a, m, j, hh, mm, ss);
  }
} else {
  Serial.println(F("Fichier memoDH.txt introuvable"));
  actualiserRTC(a, m, j, hh, mm, ss);
}

parce que d'une part ça prend plein de mémoire et peut créer des soucis et d'autre part parce que vous faites en permanence la conversion, autant stocker la valeur entière

par exemple si le tableau tabDH était de type entier (ou long) vous faites les toInt() à la lecture

for(int i=0; i<6; i++)  {
  tabDH[i] = monFichierDH.readStringUntil('\n').toInt();
}

Merci J-M-L,

J'y aurais pas pensé, et pourtant ça parait tellement évident une fois que tu me l'ai mis soucis les yeux.

Merci pour l'explication.

Bonne continuation !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.