13. juli 2004 - 10:36Der er
11 kommentarer og 2 løsninger
data struktur
Hej
Jeg skal gemme en masse (kan være over 100) varabler i en data struktur. Ved bare ikke hvilken. Størrelsen på de enkelte variabler kan variere fra 1-8 bytes. Vil helst ikke bruge en union, da den hurtigt kan bruge alt min RAM. Det skal nemlig bruges i en 8051 (embedded).
Er der nogen der har nogle forslag.
Har prøvet at lave et array af pointere til forskellige strukture men kunne heller ikke rigtig få det til at virke.
Hvis memory ikke var et problem så var en STL vector vel en glimrende løsning.
En anden mulighed er et array af void pointers.
Men hvis data kun kan være 1-8 bytes, så vil jeg sige at et array af union også var en mulighed (fordi en pointer af 4 bytes er et pænt overhead i forhold til datas størrelse).
Hvis jeg bruger en union vil hver union så ikke fylde så meget som den største variable defineret i den ??? Eller vil den kun fylde det den initialiserede fylder ???
ja, kan godt se at det kan lade sig gøre på den måde, men det vil vel blive temmelig langsomt..... Man behøver jo ikke at gøre det mere besværligt for sig selv end højst nødvendigt.
Hvis du ikke har så meget imod heftig bifmanipulation kan du kode længden med 3 bit
0-7(+1) Om du så vil ofre en extra bit for at komme op på halv byte istedet for at lave en mere indviklet 3 bit decoder er så din sag. Længde encodingen er nok best som extern iforhold til dine data da du ellers kommer du i den store udgave af bitcirkuset.
Data længde encoding vil så kun være på 3/8 af ovenstående. Hvis dine data længeder kun er 1,2,4,8 kan du klare encoding med 2 bit.
Der er ofte et tradeoff mellem memory forbrug og CPU forbrug: du kan spare memory ved at brugere mere CPU eller du kan spare CPU ved at bruge mere memory.
Jeg har valgt at bruge strukture og unions da det simplificere min kode meget. Faktisk rigtig meget.
Havde håbet lidt på at i havde en rigtig smart løsning. Hvis jeg kommer i RAM problemmer må jeg jo i gang med lidt memmove og den slags.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.