home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.std.c++
- Path: sparky!uunet!microsoft!hexnut!jimad
- From: jimad@microsoft.com (Jim Adcock)
- Subject: Re: pointer comparisons
- Message-ID: <1993Jan05.004950.12883@microsoft.com>
- Date: 05 Jan 93 00:49:50 GMT
- Organization: Microsoft Corporation
- References: <1993Jan2.211538.11320@lpi.liant.com>
- Distribution: usa
- Lines: 20
-
- |In article <9300300.29900@mulga.cs.mu.OZ.AU> (Fergus James HENDERSON)
- |writes:
- |> "The _sizeof_ operator yields the size, in bytes, of its operand".
- |> I think that it would be a very brave compiler-writer whose compiler
- |> made it unreliable to write() an object and read() it in again, because
- |> read(fd, &object, sizeof object);
- |> randomly trashes the bytes past the end of the object.
-
- Yet in the example I posted of a vacuous baseclass and a first member
- of the base type, no such problem exists. Sizeof == 1. Bytes required
- within the structure by the baseclass "subobject" == 0.
- And read(fd, &object, sizeof object) *does not* randomly trash the bytes
- past the end of the object. Further, this implementation is consistent
- with the ANSI-C base document *mandate* that implementations do not
- introduce padding into a structure before the first member.
- ANSI-C mandates that the address of the first member be the same as the
- address of the structure. Unless there is overriding reason in the ARM
- why this cannot be the case, then the ANSI-C base document ought to be
- respected. My claim is that there is no such overriding ARM requirement.
-
-