I struggle with the correct format specifier in C.
I am working with a 32-bit uC and I am using %lu for type uint32_t. For uint8_t I am using %u. That works fine.
What I can't figure out is, whether I have to use %lu or %u for uint32_t when I am dealing with a 64-bit address with uC. And the other way around: is %lu the correct format specifier when I use type uint32_t on a 16-bit system? Or should the format specifier be %llu instead?
Is the format specifier dependent on the system I am working with?