Fix impl_struct_default macro
diff --git a/sgx_types/src/macros.rs b/sgx_types/src/macros.rs
index f2f3ac9..b3bc01b 100644
--- a/sgx_types/src/macros.rs
+++ b/sgx_types/src/macros.rs
@@ -20,6 +20,7 @@
 pub use core::default::Default;
 pub use core::ptr;
 pub use core::mem::transmute;
+pub use core::mem::size_of;
 pub use crate::marker::ContiguousMemory;
 
 #[macro_export]
@@ -109,10 +110,10 @@
 }
 
 macro_rules! impl_struct_default {
-    ($($t:ty, $size:expr;)*) => {$(
+    ($($t:ty;)*) => {$(
         impl Default for $t {
             fn default() -> $t {
-                unsafe{macros::transmute([0u8; $size])}
+                unsafe{macros::transmute([0u8; macros::size_of::<$t>()])}
             }
         }
     )*}
diff --git a/sgx_types/src/types.rs b/sgx_types/src/types.rs
index b09c289..690a66f 100644
--- a/sgx_types/src/types.rs
+++ b/sgx_types/src/types.rs
@@ -132,12 +132,12 @@
 }
 
 impl_struct_default! {
-    sgx_dh_msg1_t, 576;
-    sgx_dh_msg2_t, 512;
-    sgx_dh_msg3_body_t, 436;
-    sgx_dh_msg3_t, 452;
-    sgx_dh_session_enclave_identity_t, 260;
-    sgx_dh_session_t, 200;
+    sgx_dh_msg1_t; //576
+    sgx_dh_msg2_t; //512
+    sgx_dh_msg3_body_t; //436
+    sgx_dh_msg3_t; //452
+    sgx_dh_session_enclave_identity_t; //260
+    sgx_dh_session_t; //200
 }
 
 impl_struct_ContiguousMemory! {
@@ -238,7 +238,7 @@
 }
 
 impl_struct_default! {
-    sgx_key_request_t, 512;
+    sgx_key_request_t; //512
 }
 
 impl_struct_ContiguousMemory! {
@@ -289,7 +289,7 @@
 }
 
 impl_struct_default! {
-    sgx_ra_msg3_t, 336;
+    sgx_ra_msg3_t; //336
 }
 
 impl_struct_ContiguousMemory! {
@@ -371,10 +371,10 @@
 }
 
 impl_struct_default! {
-    sgx_quote_t, 436;
-    sgx_platform_info_t, 101;
-    sgx_att_key_id_t, 256;
-    sgx_qe_report_info_t, 960;
+    sgx_quote_t; //436
+    sgx_platform_info_t; //101
+    sgx_att_key_id_t; //256
+    sgx_qe_report_info_t; //960
 }
 
 impl_struct_ContiguousMemory! {
@@ -414,7 +414,7 @@
 }
 
 impl_struct_default! {
-    sgx_report_data_t, 64;
+    sgx_report_data_t; //64
 }
 
 impl_struct_ContiguousMemory! {
@@ -471,9 +471,9 @@
 }
 
 impl_struct_default! {
-    sgx_target_info_t, 512;
-    sgx_report_body_t, 384;
-    sgx_report_t, 432;
+    sgx_target_info_t; //512
+    sgx_report_body_t; //384
+    sgx_report_t; //432
 }
 
 impl_struct_ContiguousMemory! {
@@ -524,8 +524,8 @@
 }
 
 impl_struct_default! {
-    sgx_ps_sec_prop_desc_t, 256;
-    sgx_ps_sec_prop_desc_ex_t, 292;
+    sgx_ps_sec_prop_desc_t; //256
+    sgx_ps_sec_prop_desc_ex_t; //292
 }
 
 impl_struct_ContiguousMemory! {
@@ -610,9 +610,9 @@
 }
 
 impl_struct_default! {
-    sgx_rsa3072_public_key_t, 388;
-    sgx_rsa3072_key_t, 772;
-    sgx_rsa3072_signature_t, 384;
+    sgx_rsa3072_public_key_t; //388
+    sgx_rsa3072_key_t; //772
+    sgx_rsa3072_signature_t; //384
 }
 
 impl_struct_ContiguousMemory! {
@@ -727,7 +727,7 @@
 }
 
 impl_struct_default! {
-    rsa_params_t, 1732;
+    rsa_params_t; //1732
 }
 
 impl_struct_ContiguousMemory! {
@@ -1010,7 +1010,7 @@
 }
 
 impl_struct_default! {
-    sgx_kss_config_t, 66;
+    sgx_kss_config_t; //66
 }
 
 impl_struct_ContiguousMemory! {
@@ -1294,9 +1294,9 @@
 }
 
 impl_struct_default! {
-    sgx_ql_att_key_id_t, 158;
-    sgx_att_key_id_ext_t, 256;
-    sgx_ql_ppid_rsa3072_encrypted_cert_info_t, 404;
+    sgx_ql_att_key_id_t; //158
+    sgx_att_key_id_ext_t; //256
+    sgx_ql_ppid_rsa3072_encrypted_cert_info_t; //404
 }
 
 impl_struct_ContiguousMemory! {
@@ -1332,7 +1332,7 @@
 }
 
 impl_struct_default! {
-    sgx_ql_ecdsa_sig_data_t, 576;
+    sgx_ql_ecdsa_sig_data_t; //576
 }
 
 impl_struct_ContiguousMemory! {
@@ -1363,7 +1363,7 @@
 }
 
 impl_struct_default! {
-    sgx_quote3_t, 436;
+    sgx_quote3_t; //436
 }
 
 impl_struct_ContiguousMemory! {
@@ -1384,7 +1384,7 @@
 }
 
 impl_struct_default! {
-    sgx_ql_qe_report_info_t, 960;
+    sgx_ql_qe_report_info_t; //960
 }
 
 impl_struct_ContiguousMemory! {
@@ -1411,7 +1411,7 @@
 }
 
 impl_struct_default! {
-    sgx_ql_qv_supplemental_t, 120;
+    sgx_ql_qv_supplemental_t; //120
 }
 
 impl_struct_ContiguousMemory! {