2016-04-16 8 views
1

私はCの表現と構造を持っている:ユーザー定義の構造体のサイズを取得する方法は? (はsizeof)

mem::sizeof<Scard_IO_Request>();

私はコンパイルエラーを取得:私は使用して(C sizeof()のように)sizeofをお願いしたいと思います

struct Scard_IO_Request { 
    proto: u32, 
    pciLength: u32 
} 

"error: `sizeof` is a reserved keyword" 

私がこのような機能を使用できない理由は、sizeofですn C?代わりがありますか?

答えて

13

は、2つの理由:

  1. sizeof」としてはそのような機能はありませんので、コンパイラはかなり困難な時期にそれを呼び出すことを持っているとしています。

  2. これは、ジェネリック関数を呼び出す方法ではありません。

あなたは、あなたがそれはあなたがそれを呼び出す方法を示しrunnable exampleが含まれていることがわかります(あなたも、あなたsearch for "sizeof"場合見つけることができます)mem::size_ofのマニュアルを確認してください。問題の例がある後世のために、:あなたの特定のケースで

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

、私はタイプミスをした

mem::size_of::<Scard_IO_Request>() 
+0

を使用して、その構造体のサイズを取得したい;-) – DDT

関連する問題