使用 #[!no_std] 通过 FFI 将数组从 C 传递到 Rust

Passing an array from C to Rust via FFI with #[!no_std]

在我的案例中 about passing an array from C to Rust use std::slice::from_raw_parts to convert the raw C pointer and some length information into a Rust. In an embedded context (MOS 6502 的所有答案),可能没有可用的 std 库。因此,#![no_std] 上下文中,将数组从 C 传递到 Rust 以进行(可能可变的)处理的最佳方式是什么?

虽然 std::slice::from_raw_partsno_std 环境中不可用,但 core::slice::from_raw_parts 可用,因此您可以简单地使用它。

一般来说,std 中的任何内容并且不依赖于平台(因此,不是 I/O、堆分配等)也应该在 no_std 环境中可用,通过core 板条箱。