Да, если вы используете новые типы, вам действительно следует использовать новые спецификаторы формата.
Это лучший способ сделать это, поскольку реализация уже выполнила основную работу по обеспечению правильности строк форматирования для типов.
Так, например:
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
int main (void) {
int32_t i32 = 40000;
printf ("%d\n", i32); // might work.
printf ("%" PRId32 "\n", i32); // will work.
return 0;
}
показывает оба способов сделать это.
Однако, на самом деле нет гарантии того, что первый будет работать так, как вы ожидаете. Например, в системе с 16-разрядными int
типами вы можете получить другое значение.