Каково выравнивание для вызова #pragma pack() без аргумента в компиляторе GCC?
#pragma pack()
Кроме того, я часто вижу, что когда мы используем placement new при создании объекта, class часто упаковывается.В чем причина этого?Нужно ли это делать?
placement new
class
для первой части, вы могли бы безрассудно использовать Google: http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
во-вторых, могут быть случаи, когда вам нужно контролировать двоичный формат вашего класса. вам может потребоваться управлять объемом памяти и реальными двоичными смещениями структур данных:
struct { char c; int i; };
может использовать 8 байтов памяти или 5 байтов памяти, в зависимости от типа машины и используемого пакета прагмы.