<inttypes.h> が提供する固定幅の整数型には、int8_t、int16_t、int32_t、int64_t などの符号付整数型と、uint8_t、uint16_t、uint32_t、uint64_t などの符号なし整数型があります。
指定数のビットを保持できる最小サイズの整数型として定義されている派生型としては、int_least8_t、…、int_least64_t、uint_least8_t、…、uint_least64_t などがあります。
ループカウンタやファイル記述子などの演算に int または unsigned int を使用することは問題ありません。配列インデックスに long を使用することも問題ありません。しかし、これらの固定幅型はむやみに使用しないでください。固定幅の型は、次の明示的なバイナリ表現に使用してください。
ディスク上のデータ
データ回線上のデータ
ハードウェアレジスタ
バイナリのインタフェース仕様
バイナリのデータ構造体