Der er ingen garanti for at en short fylder 2 byte eller en int 4.
Der findes faktisk compilere der har 32 bit char, short og int, her fylder de alle 1 byte.
Man kan også have bytes på 11 bit.
På mange 16 bit platforme er int og short 16 bit, mens long er 32 bit.
Men med mingw en en char 8 bit, en byte
short er 16 bit, 2 byte
int er lige som long 32 bit, 4 bytes.
Og det fylder de også i virkeligheden:
#include <iostream>
struct Short
{
short S1;
short S2;
};
struct Int
{
int I1;
int I2;
};
int main()
{
std::cout << sizeof(short) << ", " << sizeof(int) << std::endl;
std::cout << sizeof(Short) << ", " << sizeof(Int) << std::endl;
}