Article View: fr.comp.lang.c
Article #15439Re: alignements struct/tableaux
From: Pierre Habouzit
Date: Mon, 19 Sep 2005 20:20
Date: Mon, 19 Sep 2005 20:20
37 lines
3044 bytes
3044 bytes
>> donc reposons la question autrement. si my_type est un type qui
>> repr�sente la plus grosse valeur enti�re manipulable par le syst�me
>> (c'est pas rigoureux comme d�finition, mais vous comprendrez sans
>> doute mon point). est-ce stupide de supposer que :
>>
>> struct {
>> my_type a;
>> my_type b;
>> }
>>
>> et my_type c[2] vont �tre align�s pareils ?
>
> Ce n'est pas stupide, c'est seulement non portable.
> Contre exemple (un peu mais pas beaucoup tir� par les cheveux, et qui
> diff�re un peu de ta question, mais je pense que tu sauras extrapoler): au
> lieu d'entiers int�ressons-nous aux flottants, dans le cadre connu de
> l'architecture x86. Les plus grands flottants du microprocesseur sont les
> �tendus de 80 bits. Pour une cible 32 bits, il y a deux alignements
> potentiellement utilisables : fronti�re de 16 bits (un �l�ment tient sur
> 80 bits, sizeof=10), ou fronti�re de 32 bits (un �l�ment tient sur 96
> bits, sizeof=12) (en 64 bits, on a aussi fronti�re de 64 bits, avec encore
> plus de g�chis).
> Je pr�tend que l'on peut trouver des compilateurs qui vont aligner un
> tableau de ces flottants sur la fronti�re de 16 bits (pour �conomiser la
> place en m�moire quand il s'agit de manipuler de grandes quantit�s de
> donn�es); mais par contre que les membres de structures peuvent �tre
> align�s sur fronti�re de 32 bits pour acc�l�rer les traitements sur (a
> priori) de petites quantit�s de donn�es. Et gr�ce � l'agr�able propri�t�
> de petits-boutients (l'adresse ne change pas quand on change de type),
> cela reste conforme. Par contre, ta supposition ci-dessus ne tient plus.
ok, merci pour les infos.
--
�O� Pierre Habouzit
��O madcoder@debian.org
OOO http://www.madism.org
Technical Details
Message-ID:
<432f1d68$0$32532$626a14ce@news.free.fr>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-1.proxad.net!news18-e.free.fr!not-for-mailReferences:
<432c52d5$0$9425$626a14ce@news.free.fr> <mn.8cb87d59c7031bee.15512@YOURBRAnoos.fr> <432c91b5$0$21740$626a14ce@news.free.fr> <dgmbec$3h4$1@shakotay.alphanet.ch>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,2ab126dba8e5e645
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-1.proxad.net!news18-e.free.fr!not-for-mail
Message-ID: <432f1d68$0$32532$626a14ce@news.free.fr>
From: Pierre Habouzit <madcoder@debian.org>
Subject: Re: alignements struct/tableaux
Newsgroups: fr.comp.lang.c
Date: Mon, 19 Sep 2005 22:20:58 +0200
References: <432c52d5$0$9425$626a14ce@news.free.fr> <mn.8cb87d59c7031bee.15512@YOURBRAnoos.fr> <432c91b5$0$21740$626a14ce@news.free.fr> <dgmbec$3h4$1@shakotay.alphanet.ch>
User-Agent: KNode/0.9.2
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit
X-Face: $(^e[V4D-[`f2EmMGz@fgWK!e.B~2g.{08lKPU(nc1J~z\4B>*JEVq:E]7G-\6$Ycr4<;Z!|VY6Grt]+RsS$IMV)f>2)M="tY:ZPcU;&%it2D81X^kNya0=L]"vZmLP+UmKhgq+u*\.dJ8G!N&=EvlD
Lines: 37
Organization: Guest of ProXad - France
NNTP-Posting-Date: 19 Sep 2005 22:19:52 MEST
NNTP-Posting-Host: 82.225.205.10
X-Trace: 1127161192 news18-e.free.fr 32532 82.225.205.10:60914
X-Complaints-To: abuse@proxad.net