hilpers


  hilpers > comp.lang.* > comp.lang.ada

 #1  
15/04/2018, 12h17
Blady
Bonjour,

Soit les déclarations :

type TA is array (Positive range <>) of Float;
A : TA := (2.0, 3.14, 4.8);

Y a-t-il une différence entre les propositions suivantes ?

A'Address
et
A(A'First)'Address

Merci, Pascal.

 #2  
15/04/2018, 12h45
Niklas Holsti
On 18-04-15 13:17 , Blady wrote:
> Bonjour,
> Soit les déclarations :
> type TA is array (Positive range <>) of Float;
> A : TA := (2.0, 3.14, 4.8);
> Y a-t-il une différence entre les propositions suivantes ?
> A'Address
> et
> A(A'First)'Address


RM 13.3(14), Implementation Advice: "For an array X, X'Address should
point at the first component of the array, ...".

Donc, ce n'est pas normatif, mais c'est probable que A'Address =
A(A'First)'Address.
 #3  
15/04/2018, 17h15
J-P. Rosen
Le 15/04/2018 à 12:45, Niklas Holsti a écrit :
> On 18-04-15 13:17 , Blady wrote:
> RM 13.3(14), Implementation Advice: "For an array X, X'Address should
> point at the first component of the array, ...".
> Donc, ce n'est pas normatif, mais c'est probable que A'Address =
> A(A'First)'Address.

Dans les premières versions d'Ada, on n'en disait rien. Par exemple, si
un tableau était précédé de ses bornes ("dope vector"), on pouvait
considérer que l'adresse du tableau était celle du bloc de bornes. Comme
ça a surpris pas mal de gens, on recommande que ce soit le premier
élément, mais par compatibilité ce n'est pas obligatoire.
 #4  
15/04/2018, 21h39
Blady
On 15/04/2018 17:15, J-P. Rosen wrote:
> Le 15/04/2018 à 12:45, Niklas Holsti a écrit :
> Dans les premières versions d'Ada, on n'en disait rien. Par exemple, si
> un tableau était précédé de ses bornes ("dope vector"), on pouvait
> considérer que l'adresse du tableau était celle du bloc de bornes. Comme
> ça a surpris pas mal de gens, on recommande que ce soit le premier
> élément, mais par compatibilité ce n'est pas obligatoire.


Merci, donc par compatibilité il vaut mieux écrire : A(A'First)'Address
pour avoir l'adresse du "début" (premier élément) du tableau.
Pascal.
 #5  
20/04/2018, 09h47
gautier_niouzes
> Merci, donc par compatibilité il vaut mieux écrire : A(A'First)'Address
> pour avoir l'adresse du "début" (premier élément) du tableau.
> Pascal.


Affirmatif!
Il y en a un certain nombre dans le binding OpenGL de GLOBE_3D, ça marche avec GNAT et ObjectAda et sous Linux, MacOS X et Windows.

Discussions similaires
Address

MAC address

déclarer un tableau de tableau et chercher chaque élément d'un tableau

mac address


Fuseau horaire GMT +2. Il est actuellement 17h39. | Privacy Policy