ad 1) Schau mal in <inttypes.h> bzw. <limits.h>. Für AVR ist Gleitkomma langsamer (falls man nicht bei der Imlementierung von Fixpunkt nen riesigen Bock geschossen hat )

ad 3) Man kann die Werte saturieren, also bei unsigned char zB: 200+200=255. Ist natürlich teurer, weil AVR das nicht mitbringt. Wenn der Wertebereich zu klein ist wird abgeschnitten, dh der Highteil landet in der Tonne. (char) 500 = -12 oder so.

ad 4) Standardisiere: byte --> uint8_t, INT8_MIN --> SCHAR_MIN, etc (siehe ad 1). inlining kann zu langsamerem Code führen! Werd dir klar darüber welche Auswirkungen inline hat!