0
我知道結構包裝是C++編程中的常見事情(至少在低內存系統上)。但是類怎麼樣? 我知道它的作品,因爲我想它C++類包裝/成員對齊
#include <iostream>
#pragma pack(push, 1)
class Test_Packed {
uint8_t t;
uint32_t test;
};
#pragma pack(pop)
class Test_Unpacked {
uint8_t t;
uint32_t test;
};
int main() {
std::cout<<sizeof(Test_Packed) << "/" << sizeof(Test_Unpacked)<<std::endl;
return 0;
}
哪個正確輸出 「5/8」。
我可以假定這是所有符合的編譯器的情況,還是定義了此實現?
我知道添加虛擬成員(因此需要一個vtable)會在前面添加額外的數據。什麼可能是其他原因導致失敗?
除了在某些平臺上的糟糕表現,這會導致任何問題嗎?
它的實現已定義。 –