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"
next prev parent 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