есть такая интересная штука у компилятора
aligment называется.
Тоесть компилятор будет выравнивать структуру на границу слова или выше.
Размер такой структуры T может быть или 4 байта или 8 байт
Осмелюсь возразить, что aligment на размер структуры не влияет, он влияет только на её начальный адрес.
А чтобы структура занимала предполагаемый объем надо делать ее пакованной:
или так (только gcc):
class AxisScales
{
float r0; // Zero offset
float r; // step size
short U; // phisical unit
public:
AxisScales() {};
~AxisScales() {};
void AxisPrint(char* dir,ostream& out = cout)
{...
}
} __attribute__ ((packed));
и кстати, размер char = 1 ... может ли эта цифра меняться в зависимости от платформы?
Во всяком случая я такого не встречал: даже на 64-битном Sun'е char = 1 байту.
P.S.
Насчет aligment я конечно не настаиваю, просто мне так кажется.