Witam, mam taka strukture ... struct Units{ uint8_t Te_unit:2; uint8_t pH_unit:2; uint8_t Rx_unit:2; uint8_t Co_unit:2; };
jak przekazac do funkcji przez wskaznik 1 element a nie cala zmienna ??? wydaje mi sie ze sie nie da ... ale noz widelec :)
Witam, mam taka strukture ... struct Units{ uint8_t Te_unit:2; uint8_t pH_unit:2; uint8_t Rx_unit:2; uint8_t Co_unit:2; };
jak przekazac do funkcji przez wskaznik 1 element a nie cala zmienna ??? wydaje mi sie ze sie nie da ... ale noz widelec :)
U¿ytkownik "Pawel K" snipped-for-privacy@kpw.qs.pl> napisa³ w wiadomo¶ci news:d9ia6b$s4n$ snipped-for-privacy@opal.futuro.pl...
Units zmienna;
... // Kod w którym wo³amy funkcjê { ... funkcja(&(zmienna.Te_unit)); } ...
void funkcja(unit8_t * arg) { ... }
My¶lê ¿e jako¶ tak.
Pawe³
Chyba nie bardzo... wskaznik do kawalka bajtu (2 bitow)?
Marek
Sam napisales ze chcesz przekazac tylko element struktury, w tym przypadku prawdopodobnie zostal by przekazany bajt z zamaskowanymi pozostalymi bitami. Trudno powiedziec bo to zalezy od kompilatora (prawie napewno w gcc nie mozesz przekazac w argumencie do funkcji mniej niz 1 bajt). Poza tym kontrowersyjna jest dla mnie kwestia stosowania pol bitowych w strukturze, chociaz gcc...
pozdr. LB
To by sie w ogole nie skomilowalo. Zreszta, skad funkcja mialaby wiedziec ktore bity ma/moze zmieniac, a ktore nie.
Pola bitowe nie sa obowiazkowe, jest taki element jezyka, ale jak komus nie pasuje zawsze mozna wziac jakis int i maskowac bity recznie.
Krzysiek Rudnik
Have something to add? Share your thoughts — no account required.
Ask the community — no account required