From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
To: <comp.lang.ada@ada.eu.org>
Subject: Re: Anonymous array clarification.
Date: Mon, 20 Aug 2001 03:29:35 -0500
Date: 2001-08-20T03:29:35-05:00 [thread overview]
Message-ID: <mailman.998298269.12283.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: tY1g7.45466$K6.17744072@news2
----- Original Message -----
From: "McDoobie" <chris@dont.spam.me>
Newsgroups: comp.lang.ada
To: <comp.lang.ada@ada.eu.org>
Sent: August 20, 2001 1:18 AM
Subject: Anonymous array clarification.
> In Ada one can declare anonymous arrays (an array without a type assigned
> to it.) However what would such an array be used for, and are the bounds
> on it's use the same as for any other type of array.
>
I'm not sure where you got the idea that "In Ada one can declare anonymous
arrays (an array without a type assigned to it.)."
Array objects can be declared without any name haven been given
to the _array type_, but the type of the _array elements_ must be declared.
For example, suppose you have declared some type named My_Type.
Then, you would (not using anonymous types) declare an array type like
this:
type My_Array_Type is array (Integer range <>) of My_Type;
Then, an object could be declared like this:
My_Array : My_Array_Type (1 .. 100);
Instead, using an anonymous array type, you could declare your
array object like this:
My_Array : array (1 .. 100) of My_Type;
In this case the type of My_Array is an anonymous array type,
but the elements are still of a specific type -- i.e., My_Type.
> I guess what I'm asking is if I declare an array such as
>
> some_array : array(1..N);
>
The declaration you suggest is illegal.
> Can I assign values such as '1' '2' '3' 'H' 'y' '-' 'foo' all to the same
> array? And how would those values be stored in memory? As Hex data with
> thier values revealed according to the context of the code block they're
> in? How would I tell it to read the data stored in that block as Integers,
> Chars, et...?
>
There are a number of ways to accomplish what you desire.
Since you speak of "reading the data," it souns like you might want to
be using an Ada.Streams.stream_Element array, and implementing a
memory stream package. Then you can use the stream attribute of the
type of which you wish to read the data to read the data from the block.
I use thus technique a lot -- particularly in cases where the value of
some dataum read from the stream determines the type of subsequent
stream elements in the array.
> As a side note, I'll be downloading the source code to GNAT so that I can
> get a better understanding as to how this all works.
>
I don't think the source code of anycompiler will do you as much good
as readsing a good Ada text regarding stream attributes, or even the
AdaLanguage Reference Manual.
> Any help would be appreciated.
>
> Thanks
>
> McDoobie
>
> chris@dont.spam.me
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada
>
next prev parent reply other threads:[~2001-08-20 8:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-20 6:18 Anonymous array clarification McDoobie
2001-08-20 8:03 ` Phil Thornley
2001-08-20 16:49 ` Tables vs functions (was Re: Anonymous array clarification.) Ray Blaak
2001-08-20 17:28 ` Marin David Condic
2001-08-20 21:02 ` Samuel T. Harris
2001-08-21 14:13 ` Marin David Condic
2001-08-20 8:29 ` David C. Hoos, Sr. [this message]
2001-08-20 10:26 ` Anonymous array clarification Larry Hazel
2001-08-20 13:37 ` Samuel T. Harris
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox