Article View: be.comp.programming
Article #15345Re: probleem met structuur
From: KLinZ
Date: Mon, 16 Oct 2000 00:00
Date: Mon, 16 Oct 2000 00:00
46 lines
2520 bytes
2520 bytes
Matthijs <matthijslaan@NOSPAMcia-agent.com> wrote in message
news:MPG.14552ffc56413268989718@news.xs4all.nl...
> [is 8 bytes ipv 5]
>
> [is wel 5 bytes door:]
> > > #pragma pack(push)
> > > #pragma pack(1)
> > >
> > > typedef struct {
> > > BYTE var1;
> > > DWORD var2;
> > > } _test;
> > >
> > > #pragma pack(pop)
Nee, dit blijft 8 bytes omdat BYTE blijkbaar ook 4 bytes is. Maar als je dit
doet
typedef struct {
unsigned char var1;
DWORD var2;
} _test;
kan deze struct ook 8 bytes groot zijn. Er kunnen nl. 3 padding bytes
toegevoegd worden achter de unsigned char. Zodat var2 op een dword-aligned
boundary terecht komt.
>
> 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?
>
Ik wist niet dat in msvc BYTE gedefinieerd was als int, ik nam aan dat BYTE
gewoon een unsigned char was. Nee, die #pragma is erg compiler specifiek. In
Ansi C is het volgens mij (maar daar zou je de standaard op na moeten
slaan) toegestaan dat de compiler padding bytes toevoegd in structs. Met die
#pragma kun je dus aangeven dat je dat niet wilt. Dit zijn trouwens dingen
waar je niet veel mee te maken heb als je begint met C/C++. Dat msvc BYTE
als int definieert is natuurlijk op z'n minst verwarrend te noemen.
Joris
Technical Details
Message-ID:
<yXEG5.22824$Z7.395483@nlnews00.chello.com>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: "KLinZ" <klinz@NOSPAMhetnet.nl> Subject: Re: probleem met structuur Date: 2000/10/16 Message-ID: <yXEG5.22824$Z7.395483@nlnews00.chello.com> X-Deja-AN: 682089720 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 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 X-Complaints-To: abuse@chello.nl X-Trace: nlnews00.chello.com 971709278 212.187.71.152 (Mon, 16 Oct 2000 14:14:38 GMT) Organization: None X-MSMail-Priority: Normal NNTP-Posting-Date: Mon, 16 Oct 2000 14:14:38 GMT Newsgroups: be.comp.programming,nl.comp.programmeren