[avr-gcc] problem

Jun 25, 2005 4 Replies

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required