From: Martin Krischik <martin@krischik.com>
Subject: Re: Ada equivalent for C-pointer?
Date: Sun, 16 Jan 2005 09:36:04 +0100
Date: 2005-01-16T09:36:04+01:00 [thread overview]
Message-ID: <7107744.J8aUxUzYtP@linux1.krischik.com> (raw)
In-Reply-To: u651y3bfs.fsf@obry.net
Pascal Obry wrote:
>
> Nick Roberts <nick.roberts@acm.org> writes:
>
>> For example, if there is a C function defined thus:
>>
>> int wibble(int *n);
>>
>> then in Ada you can declare:
>>
>> function Wibble (Number: in out Interfaces.C.int);
>> pragma Import(C,Wibble,"wibble");
>>
>> and it should work. (Obviously, you must link the C functions in
>> somehow.)
>
> I don't think so. Here Number will be passed by value, no? And you also
> need the returned value ;)
No all out and in out parameter are passed as pointer when pragma Import(C
is used - thats unless you use C_Pass_By_Copy. I have written quite a lot
of code interfaceing with C.
Read:
http://en.wikibooks.org/wiki/Programming:Ada:Types:access#C_compatible_pointer
> So, you probably want:
>
> function Wibble (Number: access Interfaces.C.int) return
> Interfaces.C.int; pragma Import(C,Wibble,"wibble");
No! you don't want that! You would need aliased data then!
Martin
--
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com
next prev parent reply other threads:[~2005-01-16 8:36 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-14 16:41 Ada equivalent for C-pointer? Alfred Hilscher
2005-01-14 17:00 ` Duncan Sands
2005-01-14 20:05 ` tmoran
2005-01-15 5:00 ` Brian May
2005-01-14 22:33 ` Keith Thompson
2005-01-14 23:03 ` Stephen Leake
2005-01-15 15:51 ` Nick Roberts
2005-01-15 18:54 ` tmoran
2005-01-16 1:43 ` Keith Thompson
2005-01-17 21:35 ` Randy Brukardt
2005-01-15 9:09 ` Martin Krischik
2005-01-15 16:03 ` Nick Roberts
2005-01-15 16:27 ` Pascal Obry
2005-01-15 16:50 ` Nick Roberts
2005-01-15 17:11 ` Simon Wright
2005-01-15 18:46 ` Nick Roberts
2005-01-15 17:49 ` Pascal Obry
2005-01-16 8:44 ` Martin Krischik
2005-01-16 9:58 ` Pascal Obry
2005-01-16 11:07 ` Martin Krischik
2005-01-16 8:36 ` Martin Krischik [this message]
2005-01-16 15:01 ` Niklas Holsti
2005-01-16 16:02 ` Martin Krischik
2005-01-17 15:33 ` Niklas Holsti
2005-01-16 20:39 ` Nick Roberts
2005-01-17 21:38 ` Randy Brukardt
2005-01-17 21:45 ` Pascal Obry
2005-01-17 13:11 ` Alfred Hilscher
2005-01-18 7:31 ` Keith Thompson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox