如何获取用户定义结构的大小? (大小)
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
函数?有其他选择吗?
有两个原因:
没有像“sizeof
”这样的函数,因此编译器将很难调用它。
这不是调用通用函数的方式。
如果您查看 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>()
我有一个用 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
函数?有其他选择吗?
有两个原因:
没有像“
sizeof
”这样的函数,因此编译器将很难调用它。这不是调用通用函数的方式。
如果您查看 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>()