Gast
#2272207
Hallo,
ich versteh da was nicht, vielleicht helft ihr mir auf die Sprünge.
(Der Code unten handelt von einem Sekundenzähler, der einen
Minutenzähler inkrementieren soll.)
Beispielcode:
uint8_t a; // SekundenZähler
uint8_t b; // SekundenZählerStempel
a = 59;
b = 255;
if( (a - b) == 60)
{
...minutenzähler hier hochzählen...
}
Der Code oben führt leider nicht zur korrekten Inkrementierung, während
dieser hier funktioniert.
if( (uint8_t)(a - b) == 60)
{
...minutenzähler hier hochzählen...
}
Sieht so aus als ob in der oberen Subtraktion nicht mit uint8 Typen
gearbeitet wird, da es mit dem Cast auf uint8 funktioniert es.
Meine Frage: warum muss ich dem Compiler extra sagen, dass er auf uint8
beschränken muss, obwohl alle beteiligten Typen ja uint8 sind?
Gruß,
Arian