i Şimdi ben bu yüzden bir saklayıcısında olarak kullanabilirsiniz bir işlev tarafından döndürülen bir gelen U8 değer dağıtmak istiyorum (U8 unsinged tamsayı 8 demektir)C Skaler tipini skaler olmayan ve geriye doğru nasıl dökerim?
typedef struct build_field{
u8 build : 5;
u8 ability : 1;
u8 hability : 1;
u8 shinyness : 1;
} build_field;
kendime bir bit maskesini ilan etti.
build_field f = (build_field) func_that_returns_u8();
Ayrıca bunu bir u8 değerine geri çevirmek istiyorum.
u8 x = (u8) field;
Ancak C derleyicim bu işlemlerden herhangi birini yapmama izin vermez. Sorunu nasıl düzeltebiliriz?
'U8 val = 0xb5; build = val & 0x1f; yetenek = (val & 0x20) >> 5; Hability = (val & 0x40) >> 6; shinyness = (val & 0x80) >> 7; 'ya da bitleri istediğiniz sırada. – pmg