www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/07/09/06:02:20

Xref: news2.mv.net comp.os.msdos.djgpp:5759
From: locke AT mcs DOT net (Peter Johnson)
Newsgroups: comp.os.msdos.djgpp
Subject: C/C++ Packing (was: Re: [_dos_]find{first|next} problem!)
Date: Tue, 09 Jul 1996 05:29:13 GMT
Organization: BiLogic
Lines: 49
Message-ID: <31e1ed3d.40380323@news.mcs.net>
References: <836767569 DOT 26385 DOT 0 AT abwillms DOT demon DOT co DOT uk>
NNTP-Posting-Host: locke.pr.mcs.net
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

On Sun, 07 Jul 1996 19:27:32 GMT, alaric AT abwillms DOT demon DOT co DOT uk (Alaric
B. Williams) wrote:

>
>It seems to be a structure packing problem... the ff.c in djtst claims
>that the offset of ff_name is 30; but the SAME test in my code returns
>32. Why is the packing changing? I compile both sources with the same
>command line!
>
>Further examination shows that the fact that my file is a .cc and the
>ff.c file is a .c matters. Why does the packing change????? they both
>use the same include file dir.h, which lists the struct as being fully
>packed!
Here is what I found after copying the ff.c file to ff2.cc in the
/tests/libc/dos directory, and compiling both (one as c, one as c++):
Output of compiled ff.c:
sizeof(ff) = 290
ff.ff_attrib = 21
ff.ff_ftime = 22
ff.ff_fdate = 24
ff.ff_fsize = 26
ff.ff_name = 30
(null): error

Output of compiled ff.cc (identical to ff.c):
sizeof(ff) = 292
ff.ff_attrib = 21
ff.ff_ftime = 22
ff.ff_fdate = 24
ff.ff_fsize = 28
ff.ff_name = 32
(null): error

For some reason, ff_fdate is not packed as a SHORT!!  instead it is
packed on a 4-byte margin...... HMMM!

DJ, Charles - Any ideas why packing would differ C/C++??


-------------------------------------
Peter Johnson
-------------------------------------
locke AT mcs DOT net
http://www.mcs.net/~locke/
-------------------------------------
Freelance C/C++/Pascal/Asm programmer
 for DJGPP, Borland, and Watcom compilers
Member of BiLogic demo group
-------------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019