comp.lang.ada
 help / color / mirror / Atom feed
From: Keith Thompson <kst-u@mib.org>
Subject: Re: Interfacing to C
Date: Thu, 24 Dec 2009 18:07:52 -0800
Date: 2009-12-24T18:07:52-08:00	[thread overview]
Message-ID: <lnmy17bybr.fsf@nuthaus.mib.org> (raw)
In-Reply-To: 53faf11a-df58-45ca-b287-5e1901fcf5a4@c34g2000yqn.googlegroups.com

"Hibou57 (Yannick Duchêne)" <yannick_duchene@yahoo.fr> writes:
> On 24 déc, 10:46, "RasikaSriniva...@gmail.com"
> <rasikasriniva...@gmail.com> wrote:
>> I am building an interface to a C library. This library uses structs
>> like the following:
>>
>> typedef struct {
>>     x : int ;
>>     y : int }  MyStruct ....

(The correct syntax is:
    typedef struct {
        int x;
        int y;
    } MyStruct;
)

>> While passing variables of this type to functions, the convention in C
>> is to pass by value (best of my knowledge).

Yes.  In fact, C doesn't have pass by reference as a language feature;
*all* function arguments are passed by value.

For structs, it's very common in C to do the equivalent of
pass-by-reference, by explicitly passing the address of the struct
object.  This is partly because very old versions of C didn't
support struct parameters.

I find it a bit odd that Ada imposes a pass-by-pointer convention for
C structs.

(No, C arrays aren't passed by reference.  C array expressions, in
most contexts, are implicitly converted to pointers; the resulting
pointer can be passed by value.)

[...]

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Nokia
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"



  reply	other threads:[~2009-12-25  2:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-24  9:46 Interfacing to C RasikaSrinivasan@gmail.com
2009-12-24 10:01 ` Hibou57 (Yannick Duchêne)
2009-12-25  2:07   ` Keith Thompson [this message]
2009-12-31 23:18     ` Robert A Duff
2010-01-01 18:02       ` Keith Thompson
2009-12-24 12:34 ` Niklas Holsti
2009-12-24 14:26   ` RasikaSrinivasan@gmail.com
2009-12-28  7:20   ` Hibou57 (Yannick Duchêne)
2009-12-24 12:35 ` Vadim Godunko
  -- strict thread matches above, loose matches on Subject: below --
2005-02-08 18:07 Garry
2005-02-08 18:43 ` Georg Bauhaus
2005-02-08 19:01 ` Ludovic Brenta
2005-02-08 19:27 ` Martin Krischik
2005-02-08 20:50 ` Björn Lundin
2005-02-09  7:27   ` Anders Wirzenius
2005-02-09 18:53     ` Garry
2005-02-09 21:35       ` Björn Lundin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox