Article View: be.comp.programming
Article #15346Re: probleem met structuur
From: Frans Bouma
Date: Mon, 16 Oct 2000 00:00
Date: Mon, 16 Oct 2000 00:00
34 lines
3033 bytes
3033 bytes
"Matthijs" <matthijslaan@NOSPAMcia-agent.com> wrote in message news:MPG.14552ffc56413268989718@news.xs4all.nl...
> Mede door deze "onzin"(IMHO) denk ik er voorlopig niet aan om met C/C++
> te beginnen. Waar slaat dit nou in hemelsnaam op(bij C/C++, niet jouw
> antwoord)? Is dit ANSI C (werkt het ook op een andere processor dan
> Intel-compatible)? Hoe is dit te rijmen met het antwoord van FB, die zegt
> dat een byte is gedefd als een int? Wordt er gewoon een byte van die int
> afgehakt?
sorry, mijn fout, ik was even in de war met een BOOL wat als een long
is gedefineerd. een BYTE is gewoon als een unsigned char getypedefd
(WTYPES.H)
Visual C++ doet standaard niet aan alignment vziw, tenzij je dat als optimalisatie
opgeeft. een byte en een int in 1 struct zetten is mateloos inefficient. Beter
is om gewoon 2 ints of 3 extra bytes op te nemen, zodat je int op een longword
boundary blijft.
gcc e.d. doen standaard wel aan alignment van dit soort dingen en je moet dan
dus zelf de pragma's toevoegen om de packing van de structdata goed te krijgen.
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 ;)
Maak je echter gebruik van datafiles die je hebt gecreeerd met je eigen code
die is gecompileerd met dezelfde compiler, dan is er niets aan de hand.
Wat in de taalsyntax klopt heeft niet zoveel te maken met de gecompileerde binary.
Een van de gebreken aan C/C++ is dat er geen binaire standaard is, waardoor
gecompileerde C++ code niet t.a.t. dezelfde richtlijnen volgt, bv voor
data alignment, etc etc.
FB
Technical Details
Message-ID:
<8sf9i2$q68$1@news1.xs4all.nl>Path:
arc1-ca.pugleaf.net!unknown!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>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 From: "Frans Bouma" <perseus@xs4all.nl> Subject: Re: probleem met structuur Date: 2000/10/16 Message-ID: <8sf9i2$q68$1@news1.xs4all.nl> X-Deja-AN: 682108687 Content-Transfer-Encoding: 7bit Sender: perseus@11dyn31.dh.casema.net 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> X-Priority: 3 Content-Type: text/plain; charset="Windows-1252" X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Complaints-To: abuse@xs4all.nl X-Trace: news1.xs4all.nl 971712898 26824 212.64.56.31 (16 Oct 2000 16:14:58 GMT) Organization: Solutions Design X-MSMail-Priority: Normal Mime-Version: 1.0 Reply-To: "Frans Bouma" <perseus@xs4all.nl> NNTP-Posting-Date: 16 Oct 2000 16:14:58 GMT Newsgroups: be.comp.programming,nl.comp.programmeren