我有一个带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
函数?还有其他选择吗?
答案 0 :(得分:15)
有两个原因:
没有这样的功能和#34; sizeof
&#34;,所以编译器会很难调用它。
那不是你如何调用泛型函数。
如果您查看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>()