首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诡计制造-c-结构的无法解释的行为(系统外)

诡计制造-c-结构的无法解释的行为(系统外)
EN

Stack Overflow用户
提问于 2017-06-05 14:20:51
回答 1查看 50关注 0票数 0

Guile接受以下代码:

代码语言:javascript
复制
(use-modules (system foreign))
(define ptr (make-c-struct (list int int) '(300 43)))

但是,当第二行被替换为:

代码语言:javascript
复制
(define ptr (make-c-struct '(int int) '(300 43)))

有人能推断出问题可能是什么吗?

代码语言:javascript
复制
$ guile --version
guile (GNU Guile) 2.0.13

$ uname -a 
Linux <host> 4.8.0-1-amd64 #1 SMP Debian 4.8.5-1 (2016-10-28) x86_64 GNU/Linux

Backtrace:
In ice-9/boot-9.scm:
 160: 8 [catch #t #<catch-closure 55b8628b8600> ...]
In unknown file:
   ?: 7 [apply-smob/1 #<catch-closure 55b8628b8600>]
In ice-9/boot-9.scm:
  66: 6 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 5 [eval # #]
In ice-9/boot-9.scm:
2404: 4 [save-module-excursion #<procedure 55b8628d89c0 at ice-9/boot-9.scm:4051:3 ()>]
4058: 3 [#<procedure 55b8628d89c0 at ice-9/boot-9.scm:4051:3 ()>]
In /home/<user>/path/tofile.scm:
   7: 2 [#<procedure 55b862cf46c0 ()>]
In system/foreign.scm:
 158: 1 [make-c-struct (int int) (300 43)]
In unknown file:
   ?: 0 [sizeof (int int)]

ERROR: In procedure sizeof:
ERROR: In procedure alignof: Wrong type argument in position 1: int
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-05 15:51:47

这是:

代码语言:javascript
复制
(list int int)

创建一个以先前定义的int值作为元素的列表,而这是:

代码语言:javascript
复制
'(int int)

创建一个以两个符号作为元素的列表,它们不是等价的,请记住,单引号是(quote (int int))的缩写,而不是(list int int)的缩写。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44371102

复制
相关文章

相似问题

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