C 踩坑記錄 struct 結構體長度問題

2021-10-10 05:21:41 字數 558 閱讀 1836

下面的結構體總共11個位元組,但通過marshal.sizeof(headdata)獲取到的是12個位元組

[

system.serializable

]public

struct headdata

主要原因是:

結構體出於效率原因,結構會被進行優化和對齊。

如果對齊的邊界是2個位元組,那麼marshal.sizeof就得出了12。

如果對齊的邊界是4個位元組,那麼marshal.sizeof就得出了16。

要控制準確的結構布局可以用structlayout特性,其中pack=1設定對齊的粒度為乙個位元組,這時,marshal.sizeof就是11了。

[

structlayout

( layoutkind.sequential, pack=1)

]//設定對齊的粒度為乙個位元組

[system.serializable

]public

struct headdata

Python 踩坑記錄

1.浮點數判斷 工作中遇到類似下面邏輯判斷 i 1 while i 1.5 i i 0.1 print i在想象中i應該停止在1.5就不輸出了,但是實際的輸出結果是無限迴圈。這是因為在計算機的邏輯中,浮點數的儲存規則決定了不是所有的浮點數都能準確表示,有些是不準確的,只是無限接近。如0.1轉換為二進...

Java踩坑記錄

1.quartz整合spring框架service層物件注入為null解決方案 jobdetailfactorybean中注入的是乙個cn.itcast.quartz.hellojob實現類的全路徑,底層會反射建立出乙個hellojob的物件,但是該物件不是由spring管理的,所以業務層的物件無法...

SSD踩坑記錄

原github專案位址,借用大神的模型自己訓練ssd 1 error default maxpoolingop only supports nhwc on device type cpu data format nchw 修改為 nhwc 2 關於dataset name 將影象資料轉換為tfrec...