Racket 如何将C字符数组直接转换为字节
如果定义了\u名称,则我使用c字符串样式:Racket 如何将C字符数组直接转换为字节,racket,Racket,如果定义了\u名称,则我使用c字符串样式: (define-cstruct _ifreq ([ifr_name (_array _byte IFNAMSIZE)] ;; ommited ... )) 我可以通过(array->ref)和递归从中创建列表来访问单个元素。然后使用(list->bytes)获取lisp数据结构。我很好奇是否有一种更简单的方法不需要创建列表 Racket为这种场合提供了可变字节字符串 (r
(define-cstruct _ifreq ([ifr_name (_array _byte IFNAMSIZE)]
;; ommited ...
))
我可以通过(
array->ref
)和递归从中创建列表来访问单个元素。然后使用(list->bytes
)获取lisp数据结构。我很好奇是否有一种更简单的方法不需要创建列表 Racket为这种场合提供了可变字节字符串
(require ffi/unsafe)
(define (byte-array->bytes array)
(let* ([len (array-length array)]
[byte* (make-bytes len)])
(for ([i (in-range len)])
(bytes-set! byte* i (array-ref array i)))
byte*))