汎整数拡張
端的に言うと、int型あるいはunsigned int型を使用できる式の中では、char, short, int, intビットフィールドの符号付き・符号無しにかかわらず、それら元の型の全ての値をint型で表現できるならばそれらの値をint型に、それ以外はunsigned int型に変換するということである。演算に先立って、すべてのオペランドの型が揃えられる。
例えば、unsigned char型同士の演算では、unsigned char型のまま演算するのではなく、unsigned char型の値をまずint型に格上げする変換が暗黙的に行なわれる。その後、途中の各演算はint型で行なわれる。これにより、各演算結果がINT_MAXを超えたりINT_MIN未満となったりしないかぎり、計算途中の値がオーバーフローして算術エラーが起こることはない。
同様に、int型での演算結果をunsigned char型に代入する際に格下げする変換が暗黙的に行なわれるが、最終結果がUCHAR_MAXを超えたり0未満となったりしないかぎり、オーバーフローが起こることはない。