我不確定這是一個問題,但肯定是一種好奇心。我有一個C DLL,導出一個採用32位整數和布爾(stdbool.h)的函數。導出的函數(stdcall)表示參數列表是8個字節(4字節int,4字節bool)。這個C DLL還包含一個使用布爾值的結構。檢查sizeof(bool)
表示1字節布爾值。導出C函數vs結構vs .Net編組bool的大小
我有一個.Net包裝這個本地DLL。編組結構時,我爲每個布爾型字段UnmanagedType.U1指定了一切,並且運行良好,所有內容都正確對齊。我只使用順序佈局,沒有明確的,也沒有任何抵消,也沒有任何包裝。
我的問題是,爲什麼布爾大小的視差?
該DLL使用什麼編譯器? – Lundin
Eclipse - > MingW - > GCC 4.7 – Ioan