構造体のアライメント関係です。
ぐぐってみたのですが、いまいち理解できません。

struct {
 long l;
 short s;
 char c;
}ST1;

struct {
 short s;
 long l;
 char c;
}ST2;

ST1のshort、charは偶数バイトに丸められたのかな〜くらいで納得(?)したのですが
ST2がサッパリ!
なぜcharが4バイト扱いになってるの?

OSはWindowsでコンパイラはVC。設定項目のアライメントサイズは8。
sizeof(short)は2 sizeof(long)は4になる環境です。