Используйте %d
для int
и PRId32
для int32_t
.
Возможно, на вашей платформе int32_t
- это просто определение типа для int
, но это не совсем так.
Использование неправильного спецификатора вызывает неопределенное поведение, и его следует избегать.
Как указывает @EricPostpischil, обратите внимание, что %d
используется внутри строки формата в кавычках, а PRId32
используется снаружи. Причина этого в том, что PRId32
- это макрос, который расширяется до строкового литерала и затем объединяется.