Meinst Du etwas wie

Code:
uint8_t i;
uint16_t x;

i = x & 0xff;
Das ist Verschwendung, da der Compiler die Maskierung für Dich macht, indem er nur die unteren 8 Bit des Datenwortes nimmt. Wenn Du Glück hast, wird das später wegoptimiert, da es unnötiger Code ist.

Um ein Warning des Compilers zu vermeiden ist der Weg den Andun beschrieben hat genau der richtige.