Alex: Fallstrick in C?

Beitrag lesen

Hallo alle zusammen!

Kurioses Problem: Ich programmiere gerade einen Microcontroller in C, avrgcc ist der Compiler. Wenn ich schreibe

  
uint8_t s;  
time_t t;  
  
s = n/100;  
t.csecs = n % 100;  
t.secs  = (s % 60);  
t.mins  = (s/60) % 10;  

erhalte ich beispielsweise für den Input n=25856 im Feld secs den Wert 2 und in mins eine 0. Mit einem expliziten

  
time_t t;  
  
t.csecs = n % 100;  
t.secs  = ((n/100) % 60);  
t.mins  = ((n/100)/60) % 10;  

erhalte ich hingegen das erwartete secs=18, mins=4. Sieht hier jemand die Ursache des Problems in der ersten Variante, bevor ich mich durch den Assemblercode gewühlt hab? Warnings gibt es übrigens keine.

Grüße,

Alex