🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15345

Re: probleem met structuur

#15345
From: KLinZ
Date: Mon, 16 Oct 2000 00:00
46 lines
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-mail
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>

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