Article View: be.comp.programming
Article #15272Re: probleem met structuur
From: Robert Amesz
Date: Mon, 23 Oct 2000 02:12
Date: Mon, 23 Oct 2000 02:12
47 lines
3098 bytes
3098 bytes
Onno Hovers schreef: >Robert Amesz <rcameszREMOVETHIS@dds.removethistoo.nl> wrote: >> Frans Bouma schreef: > >>> Dit kan een probleem zijn als je blokken data moet inlezen en >>> die blokken stellen structs voor (erg fijn ;)). code dat in >>> VC++ is geschreven werkt dan niet met gcc, omdat gcc standaard >>> een byte als 4 bytes in een structure opneemt (terecht, dat is >>> veel sneller) echter als je data gepacked is zonder >>> paddingbytes dan werkt het niet echt ;) > >> Om nog maar te zwijgen van het feit dat de datafiles die je op die >> manier maakt ook niet overdraagbaar zijn naar big-endian >> processoren, althans niet zonder de hele lees- en schrijfroutines >> te herschrijven. > >Hoe had je het dan gehad willen hebben? Een taal die op >little-endian processoren met big-endian getallen moet werken of >andersom? Huh? Natuurlijk niet. > En hoe moeilijk is het nou om ntohl(), htonl(), ntohs() en >htons() te gebruiken? > Moeilijk? Nee! Maar sommigen vinden het toch te bewerkelijk of weten niet beter, en gaan dan dingen doen als: fwrite(& mystructinstance, sizeof(struct mystruct), 1, somefile); Dan krijg je bestanden waarin de lengte en bytevolgorde afhangen van zowel de compiler als de processor. We waren het er geloof ik allemaal wel over eens dat dat een Heel Slecht Idee is. <g> Overigens zit je nog steeds met een probleempje als je je floats, doubles of long longs (64 bits) portable wilt opslaan, daar moet je dan zelf iets leuks op verzinnen. Voor die long long is dat niet echt een probleem, maar voor floating point getallen is dat lastiger omdat daar een groot aantal binaire formaten voor bestaat. Als je geen nauwkeurigheid wilt verliezen is het opslaan als ascii vaak de enige goede oplossing. Robert Amesz
Technical Details
Message-ID:
<8FD62B556rcamesz@127.0.0.1>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-03!supernews.com!news.tele.dk!194.109.6.150!transit.news.xs4all.nl!bullseye.news.demon.net!demon!news.demon.nl!demon!amesz.demon.nl!not-for-mailReferences:
<UljG5.29720$s31.471928@afrodite.telenet-ops.be> <3MlG5.19859$Z7.336199@nlnews00.chello.com> <A9mG5.31247$s31.493710@afrodite.telenet-ops.be> <MPG.14552ffc56413268989718@news.xs4all.nl> <8sf9i2$q68$1@news1.xs4all.nl> <8FD016AC0rcamesz@127.0.0.1> <8sstgb$smq$2@s.surfer.xs4all.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,f57e95232f06f286 X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,f57e95232f06f286 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2000-10-22 19:13:06 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-03!supernews.com!news.tele.dk!194.109.6.150!transit.news.xs4all.nl!bullseye.news.demon.net!demon!news.demon.nl!demon!amesz.demon.nl!not-for-mail From: rcameszREMOVETHIS@dds.removethistoo.nl (Robert Amesz) Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: probleem met structuur Date: Mon, 23 Oct 2000 02:12:07 GMT Message-ID: <8FD62B556rcamesz@127.0.0.1> References: <UljG5.29720$s31.471928@afrodite.telenet-ops.be> <3MlG5.19859$Z7.336199@nlnews00.chello.com> <A9mG5.31247$s31.493710@afrodite.telenet-ops.be> <MPG.14552ffc56413268989718@news.xs4all.nl> <8sf9i2$q68$1@news1.xs4all.nl> <8FD016AC0rcamesz@127.0.0.1> <8sstgb$smq$2@s.surfer.xs4all.nl> Reply-To: rcamesz@dds.nl NNTP-Posting-Host: amesz.demon.nl X-NNTP-Posting-Host: amesz.demon.nl:212.238.72.220 X-Trace: news.demon.nl 972267127 pluto:29346 NO-IDENT amesz.demon.nl:212.238.72.220 X-Complaints-To: abuse@nl.demon.net X-Posting-Agent: Hamster/1.3.13.0 User-Agent: Xnews/03.07.28 Lines: 47