Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Taille de classe

Received: by 10.180.75.197 with SMTP id e5mr13377wiw.1.1349940484056;
        Thu, 11 Oct 2012 00:28:04 -0700 (PDT)
From: Alain Ketterlin <al...@dpt-info.u-strasbg.fr>
Newsgroups: fr.comp.lang.c++
Subject: Re: Taille de classe
Date: Thu, 04 Oct 2012 13:42:02 +0200
Organization: Universites Paris VI/Paris VII - France
Lines: 23
Message-ID: <87r4pefoqd.fsf@dpt-info.u-strasbg.fr>
References: <alpine.LNX.2.00.1210041248230.3227@coulomb.univ-paris12.fr>
NNTP-Posting-Host: icps-laptop-ketterlin.u-strasbg.fr
Mime-Version: 1.0
X-Trace: vishnu.jussieu.fr 1349350922 49798 130.79.192.170 (4 Oct 2012 11:42:02 GMT)
X-Complaints-To: usenet@vishnu.jussieu.fr
NNTP-Posting-Date: Thu, 4 Oct 2012 11:42:02 +0000 (UTC)
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)
Cancel-Lock: sha1:D2gi1TzXKZ0HkagyxiJf5bbGw5Y=
Path: q10ni65082136wif.0!nntp.google.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!85.12.40.130.MISMATCH!xlned.com!feeder1.xlned.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!border4.nntp.ams.giganews.com!border2.nntp.ams.giganews.com!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!backlog1.nntp.dca.giganews.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.glorb.com!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!usenet-fr.net!feed.ac-versailles.fr!uvsq.fr!jussieu.fr!not-for-mail
X-Original-Bytes: 1874
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Lucas Levrel <lucas.lev...@u-pec.fr> writes:

> Si une classe A contient un champ de type T, est-il garanti que
> sizeof(A) sera un multiple entier de sizeof(T) ?
>
> Par exemple, si je d=C3=A9finis
> class A {
>   int un;
>   double deux;
> }
> (ou double d'abord et int ensuite) et que je compile avec le
> compilateur Intel, j'obtiens sizeof(A)=3D=3D16 (sachant que sizeof(int)=
=3D=3D4
> et sizeof(double)=3D=3D8). Est-ce impos=C3=A9 par la norme ? Est-ce un
> comportement g=C3=A9n=C3=A9ral des compilateurs courants ?

Si mes souvenirs sont bons, la r=C3=A8gle est que les champs soient align=
=C3=A9s
sur un multiple de leur taille. Dans ton exemple, il y a donc un padding
entre un et deux, pour que le double soit align=C3=A9 sur un multiple de 8.
Si tu changes l'ordre, tu devrais arriver =C3=A0 12.

-- Alain.