Осознал что чистый int неизвестно какого размера мне перестал быть нужным. Кроме как передать в printf и общаться с api ос.
Давно использую (u)intXX_fast_t для считаная и (u)intXX_t для хранения. А так же (s)size_t для работы с памятью.
Некоторое время продолжал использовать int и unsigned для всяких констант и вычисления во время компиляции пока не понял что проще и надежнее в таких случаях сразу брать (u)int_max_t.
Про всякие short и прочие странные long long вообще молчу. Чистый бред.
PS реквестирую современный подход к шаблонам в printf. Чтобы не %d а %u8, %i32