typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef signed __int64 int64_t; ...
passing a variable defined as uint8_t to a standard library function gives warnings. this has resulted to a lot of warnings in the code.
This can be a worrisome situation for the colleague who may refer to the code.
is there any way in which the toolchain knows that both definitions are one and the same and that warnings must not be generated?
But you use uint8_t when you specifically want unsigned. You use sint8_t when you specifically want signed. You use char when you just want text.
So maybe you shouldn't use uint8_t if all you want is text?
Note that the project configuration for at least the ARM toolchain allows you to decide if plain char is signed or unsigned, in case you want to make sure that 8-bit characters doesn't look like EOF.