chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] return a float from foreign function


From: Shawn Rutledge
Subject: Re: [Chicken-users] return a float from foreign function
Date: Sun, 27 Aug 2006 23:46:22 -0700

On 8/27/06, John Cowan <address@hidden> wrote:
Shawn Rutledge scripsit:

> impl.c:
>
> #include <math.h>
>
> float baz(int i)
> {
>        return (((float)i) / 15.2);
> }

Note that "float" in Chicken foreign types is a synonym for "double",
whereas "float" in C means single-float and "double" means double-float.
So you need to change the C code to say "double" in both place
in order to get this to work at all (except by luck).

That doesn't seem to be enough.

double baz(int i)
{
       return (double)i / 2.35;
}

(define baz (foreign-lambda float "baz" int))
(display baz)
(display (baz 42))

./callit
#<procedure (baz a25)>42.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]