cerhu > comp.lang.* > comp.lang.ada

Blady (15/04/2018, 12h17)
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.
Niklas Holsti (15/04/2018, 12h45)
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.
J-P. Rosen (15/04/2018, 17h15)
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.
Blady (15/04/2018, 21h39)
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.
gautier_niouzes (20/04/2018, 09h47)
> 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 01h19. | Privacy Policy