gpt4 book ai didi

pointers - 解释 Rust 中的 C 声明

转载 作者:行者123 更新时间:2023-11-29 08:24:06 27 4
gpt4 key购买 nike

我需要在 Go 和 Rust 中重写这些 C 声明,以解决我正在处理的一组练习题。我想通了 Go 部分,但我在 Rust 部分遇到了麻烦。在 Rust 中编写这些有任何想法或帮助吗?

  1. 双*a[n];
  2. 双 (*b)[n];
  3. 双 (*c[n])();
  4. 双 (*d())[n];

最佳答案

假设 n 是一个常量:

let a: [*mut f64, ..n];           // double *a[n];
let b: *mut [f64, ..n]; // double (*b)[n];
let c: [fn() -> f64, ..n]; // double (*c[n])();
fn d() -> *mut [f64, ..n]; // double (*d())[n];

这些在任何语言中都是相当尴尬和不寻常的类型。然而,Rust 的语法使这些声明比 C 的语法更容易阅读。

请注意,C 中的d 是一个函数声明。在 Rust 中,外部函数声明只允许在 extern block 中使用(参见 the FFI guide )。

关于pointers - 解释 Rust 中的 C 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27242122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com