Elektronika.lt
 2025 m. gruodžio 19 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 12 19, 23:04. Visos datos yra GMT + 2 valandos.
 Forumas » Programavimas » Problema su ms visual studio 2008 (typedef union ir struct)
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Problema su ms visual studio 2008 (typedef union ir struct)
PranešimasParašytas: 2013 02 20, 10:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
lukassal1
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
visual studio tiesiog nenori dirbti su union, juos mato, bet kai bandai kokiam nors kintamajam priskirti reikšme ji tiesiog jos nepriskiria, praeina ir viskas. O jei naudotu typedef ir union tai tada visa struktūros adresus apverčia.
Kad ir paimu pvz iš informacijos nuoroda bet neveikia.
Kodas:

union mytypes_t {
char c;
int i;
float f;
} mytypes;


O į kintamuosius kreipiuosi taip:
Kodas:
mytypes.c=128;
mytypes.f=3,14;

ir nieko, nepriskiria.
O va jei yra unios su typedef, tai viska apverčia, sukeičia viršų su apačia struktūros, pvz:

Kodas:
typedef union {
byte buff[40];   
struct
{
unsigned short TransactionIdentifier;
unsigned short ProtocolIdentifier;
unsigned short LengthField;
unsigned char UnitIdentifier;
unsigned char Functioncode;
word Data[255];
};   
} tModBusPaketas;

tModBusPaketas ModBusPaketas;

// tai po to kai bandau surašyti reikšmes
ModBusPaketas.ProtocolIdentifier=0;
ModBusPaketas.LengthField= swap (9 );
ModBusPaketas.UnitIdentifier=0xFE;
ModBusPaketas.Functioncode=0x03;
ModBusPaketas.Data[0]=swap ( Reg );
ModBusPaketas.Data[1]=swap ( 1 );
ModBusPaketas.Data[2]=swap ( 3 );
ModBusPaketas.Data[3]=swap ( 1 );


// ir jos blogai susirašo, na kai bandai surašyti reikšime į ModBusPaketas.LengthField, tai ji atsiranda tada
ModBusPaketas.Data, grynai apversta visa struktūra.

Gal kas žinot ką ne taip darau? Iš anksto dėkui. Nes nežinau kur ieškoti bėdų. Google ir jau nepadeda.Sad
Dar pastebėjau jei yra lokaliai susikurtas kintamasis viskas kaip ir veikai.
 Re: Problema su ms visual studio 2008 (typedef union ir stru
PranešimasParašytas: 2013 02 20, 12:53 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Andriusss123
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
lukassal1 rašo:
visual studio tiesiog nenori dirbti su union, juos mato, bet kai bandai kokiam nors kintamajam priskirti reikšme ji tiesiog jos nepriskiria, praeina ir viskas. O jei naudotu typedef ir union tai tada visa struktūros adresus apverčia.
Kad ir paimu pvz iš informacijos nuoroda bet neveikia.
Kodas:

union mytypes_t {
char c;
int i;
float f;
} mytypes;


O į kintamuosius kreipiuosi taip:
Kodas:
mytypes.c=128;
mytypes.f=3,14;

ir nieko, nepriskiria.
O va jei yra unios su typedef, tai viska apverčia, sukeičia viršų su apačia struktūros, pvz:

Kodas:
typedef union {
byte buff[40];   
struct
{
unsigned short TransactionIdentifier;
unsigned short ProtocolIdentifier;
unsigned short LengthField;
unsigned char UnitIdentifier;
unsigned char Functioncode;
word Data[255];
};   
} tModBusPaketas;

tModBusPaketas ModBusPaketas;

// tai po to kai bandau surašyti reikšmes
ModBusPaketas.ProtocolIdentifier=0;
ModBusPaketas.LengthField= swap (9 );
ModBusPaketas.UnitIdentifier=0xFE;
ModBusPaketas.Functioncode=0x03;
ModBusPaketas.Data[0]=swap ( Reg );
ModBusPaketas.Data[1]=swap ( 1 );
ModBusPaketas.Data[2]=swap ( 3 );
ModBusPaketas.Data[3]=swap ( 1 );


// ir jos blogai susirašo, na kai bandai surašyti reikšime į ModBusPaketas.LengthField, tai ji atsiranda tada
ModBusPaketas.Data, grynai apversta visa struktūra.

Gal kas žinot ką ne taip darau? Iš anksto dėkui. Nes nežinau kur ieškoti bėdų. Google ir jau nepadeda.Sad
Dar pastebėjau jei yra lokaliai susikurtas kintamasis viskas kaip ir veikai.



In C++, unions can only contain pointers?
http://www.cplusplus.com/forum/beginner/15843/
 Problema su ms visual studio 2008 (typedef union ir struct)
PranešimasParašytas: 2013 02 20, 14:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Parodyk dar kaip tu alokuoji vieta savo strukturoms.
 Problema su ms visual studio 2008 (typedef union ir struct)
PranešimasParašytas: 2013 02 20, 15:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
lukassal1
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Socrates rašo:
Parodyk dar kaip tu alokuoji vieta savo strukturoms.


Čia klausi kur apsirašau jas?Smile Tai jos yra aprašytos h faile. Va prisegu tuos failus.
http://pastebin.com/268UpeYH

http://pastebin.com/pxDJp7NU
Viskas ant labwindows veikė.
Tiesa dabar pastebėjau kad iš vis nenori dirbti su globaliais masyvais, mato bet reikšmių į ji neįrašo, tiesiog praeina, o va į lokalu įsirašo. Kaip kad kas nors būtu su nustatymais.Smile
 Problema su ms visual studio 2008 (typedef union ir struct)
PranešimasParašytas: 2013 02 26, 08:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vvv2
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
1. Jokioje C++ negali union vienu metu naudoti kelių narių, jei to reikia, tai tam yra struct.

2. Įjungus optimizavimą, C++ pašalina rašymą į lokalius kintamuosius, jei jie nenaudojami skaičiavime.

p.s.
.. mokytis, mokytis ir dar kartą mokytis, o ne kaltinti VS!

Exclamation
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Must have farming mods
Farming simulator modhub, Best farming simulator mods
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama