C hat die Schwäche, dass die Größe der Datentypen nicht verbindlich festgelegt ist. Ein unsigned int kann je nach Controller/CPU unterschiedlich groß sein. Auf enm PC mit 32-Bit CPU sind es zb 32 Bit. Um diese Schwäche auszubügeln und portierbaren Code zu haben, definiert avr-gcc diese Datentypen mit festgelegter Länge.