Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 5 sty 2025, o 21:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 23 lut 2013, o 19:47 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 3
Pomógł: 0

Witam,
Mam pytanie odnosnie przekazywania informacji zawartych w strukturze zlozonej z pol bitowych, jako pojedynczej zmiennej.

Dla przykladu, zalozmy ze mam taka strukture:

typedef struct
{
int zmienna1 : 8;
int zmienna2 : 8;
} dane;

Deklaruje zmienna:

unsigned short bufor = 0;
dane moje_dane = {0xFF, 0x0F};

Czy jest mozliwe aby skopiowac zawartosc struktury moje_dane do zmiennej bufor, aby ta zmienna wynosila 0xFF0F?

Czy mozna do tego uzyc funkcji memcpy() i czy da rade tez w druga strone?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2013, o 23:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27334
Lokalizacja: Szczecin
Pomógł: 1041

Można przez memcpy, można przez wskaźnik, można przez połączenie unii ze strukturą, można w końcu najprościej jak się da czyli:

bufor = (moje_dane.zmienna1<<8) | moje_dane.zmienna2;

tylko się zastanawiam po co ci pola bitowe o pojemności aż 8 bitów ??? toż to cały bajt, a nie dość tego ty jeszcze definiujesz je jako int zamiast uint8_t .... tak jakoś wszystko jakby troszkę do góry nogami jest tu zrobione.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO