Если POD находится внутри класса, дает ли он тот же эффект?
Ниже приведены две разные интерпретации:
char c; // 1
struct MyChar { char c; }; // 2
Если я сделаю new MyChar[100]
Будет ли он выделять 100 байт на всей платформе? Добавление неvirtual
конструктор / деструктор и / или operator
s окажет какое-либо влияние на размер MyChar
?
2 ответа
Решение
MyChar
может иметь безымянные байты заполнения после c
так что нет, не гарантируется, что sizeof(MyChar)
является 1
,
На MSVC вы можете использовать:
#pragma pack(1)
struct MyChar
{
char c;
};
// Restore
#pragma pack()