Возможно, это не самый элегантный метод, но одна вещь, которую вы можете использовать, это UINT_MAX, определенный в "limit.h". То есть ...
если UINT_MAX == 65535, то вы знаете, что sizeof (без знака) = 2
если UINT_MAX == 4294967295, то вы знаете, что sizeof (без знака) = 4.
и т. Д.
Как я уже сказал, не элегантно, но должно обеспечивать некоторый уровень удобства использования.
Надеюсь, это поможет.