首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鸡方案中的bind vs bind*

鸡方案中的bind vs bind*
EN

Stack Overflow用户
提问于 2013-10-05 14:40:46
回答 1查看 280关注 0票数 1

我有下面的鸡计划代码片段:

代码语言:javascript
复制
(require-extension bind)

(bind* "double int_exp(double, int);")
(bind* "double square(double);")

(begin
    (print (int_exp 1.2 1))
    (print (square 2.0)))

int_expsquare只是我用来进行测试的小测试函数(用C编写的)。这段代码运行良好;但是,一旦删除星号,编译后的程序就会打印假值(而伪值取决于我是使用clang还是gcc编译C代码)。bind文档--简单地说是他说 "bind* --类似于bind,但也使用foreign-declare "foreign-declare将代码嵌入生成的方案扩展中,其中包括给定的字符串逐字放入生成文件的头中”--这两种方法都没有特别的帮助,因为我对小鸡(实际上是Scheme )还不熟悉。它们实际上意味着什么,bindbind*之间有什么区别,我应该在什么时候使用它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-05 19:58:00

据我所知,如果您正在调用的函数已经在您以前的bind d头文件中声明过(包括任何由chicken.h自动包含的内容,所有的chicken.h程序都包括在内),则可以使用chicken.h。如果您正在调用的函数尚未声明,则还需要使用bind*发出声明。

因此,这是可行的(math.h已经包括在chicken.h中):

代码语言:javascript
复制
(use bind extras)
(bind "double cbrt(double)")
(format #t "cbrt(~a) = ~a~%" 27 (cbrt 27))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19198952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档