如何获取用户定义结构的大小? (大小)

How to get the size of a user defined struct? (sizeof)

我有一个用 C 表示的结构:

struct Scard_IO_Request {
    proto: u32,
    pciLength: u32
}

当我想询问 sizeof(就像在 C sizeof() 中)时使用:

mem::sizeof<Scard_IO_Request>();

我收到编译错误:

"error: `sizeof` is a reserved keyword"

为什么我不能像在 C 中那样使用这个 sizeof 函数?有其他选择吗?

有两个原因:

  1. 没有像“sizeof”这样的函数,因此编译器将很难调用它。

  2. 这不是调用通用函数的方式。

如果您查看 mem::size_of 的文档(即使您 search for "sizeof"), you will see that it includes a runnable example 也可以找到它,它会告诉您如何调用它。为了后代,相关示例是:

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

在您的特定情况下,您将使用

获得该结构的大小
mem::size_of::<Scard_IO_Request>()