That depends on your compiler.
You can use #pragma pack(1)
with e.g. MSVC and gcc, or #pragma pack 1
with aCC.
For example, assuming MSVC
/gcc
:
#pragma pack(1)
class FourFloats
{
float f1, f2, f3, f4;
};
Or better:
#pragma pack(push, 1)
class FourFloats
{
float f1, f2, f3, f4;
};
#pragma pack(pop)
That basically disables padding and guarantees that the floats
are contiguous. However, to ensure that the size of your class is actually 4 * sizeof(float)
, it must not have a vtbl, which means virtual members are off-limits.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…