我有一个用C表示的 struct :

struct Scard_IO_Request {
    proto: u32,
    pciLength: u32
}

当我想问sizeof(如C sizeof())时,使用:

mem::sizeof<Scard_IO_Request>();

我发现编译错误:

"error: `sizeof` is a reserved keyword"

为什么我不能像在C中那样使用这个sizeof函数?还有别的 Select 吗?

推荐答案

原因有二:

  1. no such function被称为"sizeof",因此编译器将很难调用它.

  2. 这不是调用泛型函数的方式.

如果你查看文档中的mem::size_of(即使你有search for "sizeof"个,你也能找到),你会发现它包含一个runnable example,告诉你如何调用它.对于后代来说,这个例子是:

fn main() {
    use std::mem;
    assert_eq!(4, mem::size_of::<i32>());
}

在您的特定情况下,您可以使用

mem::size_of::<Scard_IO_Request>()

Rust相关问答推荐

如何在Rust中在屏幕中间打印内容?

为什么reqwest以文本形式下载二进制文件?

为什么铁 rust S似乎有内在的易变性?

如何循环遍历0..V.len()-1何时v可能为空?

用于判断整数块是否连续的SIMD算法.

如何设置activx websocket actorless的消息大小限制?

如何将生存期参数添加到框<>;具有dyn类型别名

为什么 `Deref` 没有在 `Cell` 上实现?

找不到 .has_func 或 .get_func 的 def

使用 Option 来分配?

为什么需要静态生命周期以及在处理 Rust 迭代器时如何缩小它?

Google chrome 和 Apple M1 中的计算着色器

实现泛型的 Trait 方法中的文字

在 Rust 中使用 `SecTrustSettingsSetTrustSettings` 绑定导致 `errSecInternalComponent`

为什么在 macOS / iOS 上切换 WiFi 网络时 reqwest 响应会挂起?

Rust 中函数的类型同义词

为什么 Rust 编译器在移动不可变值时执行复制?

为什么可以从闭包中返回私有 struct

如何创建动态创建值并向它们返回borrow 的工厂?

你能用 Rust 和 winapi 制作 Windows 桌面应用程序吗?