Edit: Bezüglich der Größe eines chars: Der Standard definiert, dass ein char genau ein Byte groß ist (was Jesus_666 wahrscheinlich gemeint hat), aber wie groß ein Byte ist, ist natürlich implementationsabhängig.
Ganz ehrlich, was schreibst du für Software, die übers Netzwerk mit Architekturen ungewöhnlicher Bytebreite sprechen muß? Wenn du das nicht gerade als Teil der Anforderungsspezifikation hast, dann ist das unnötiger Aufwand. Für welche Plattformen schreibst du den Code (und wäre es nicht sinnvoller, die obskureren Architekturen als Sonderfall zu behandeln und für den Rest 8-bittige Bytes anzunehmen)?