Что такое int_fast32_t я знаю будучи пьяным и разбуженным в 4 утра.
Что такое u8 -- не знаю, не уверен, ибо есть нюансы. Для
int_fast32_t есть INT_FAST32_MAX и PRIdFAST32 например, а для u8
что? Для именно u8 или i8 вообще интересно, это char, signed char
или unsigned char (кто не знает -- это ТРИ РАЗНЫХ типа). Можно для
всех библиотечных типов придумать свои алиасы, но читать такую
программу -- невозможно. Потом #define вместо typedef использовать
нельзя, т.к. у него глобальный контекст, а в каких-то локальных контекстах любой идентификатор не являющийся зарезервированным словом может иметь свой смысл. Классика жанра: макросы major и minor из линукса (man makedev) заставляют сходить с ума виндовс-программистов.
Вдогонку: помимо прочего нестандартные типы затрудняют юнит-тестирование и повторное использование кода. Потому, что где-то определений этих типов не будет, они будут не такие, их невозможно так просто включить в проект и т.п. Очень удобно, когда код относительно легко может перетаскиваться между проектами/архитектурами и т.п. Но для этого он должен быть написан в рамках стандарта.
В если говорить о кросс-платформенности, то жёстко задавать разрядность типов -- абсолютно дурная идея. Лучше использовать int, long, char... они для того такими и задуманы.