cpp
复制代码
// 正确用法
printf("int8_t: %"PRId8"\r\n", i8); // 或者 %d
printf("int16_t: %"PRId16"\r\n", i16); // 或者 %d
printf("int32_t: %"PRId32"\r\n", i32); // 或者 %ld + (long)
printf("int64_t: %"PRId64"\r\n", i64); // 或者 %lld + (long long)
// 正确用法
printf("uint8_t: %"PRIu8"\r\n", u8); // 或者 %u
printf("uint16_t: %"PRIu16"\r\n", u16); // 或者 %u
printf("uint32_t: %"PRIu32"\r\n", u32); // 或者 %lu + (unsigned long)
printf("uint64_t: %"PRIu64"\r\n", u64); // 或者 %llu + (unsigned long long)
// 十六进制输出
printf("uint8_t(hex): 0x%02"PRIx8"\r\n", u8);
printf("uint16_t(hex): 0x%04"PRIx16"\r\n", u16);
printf("uint32_t(hex): 0x%08"PRIx32"\r\n", u32);
printf("uint64_t(hex): 0x%016"PRIx64"\r\n", u64);
printf("float: %.6f\r\n", f32);
printf("double: %.15f\r\n", f64);
// 科学计数法
printf("float(scientific): %e\r\n", f32);
printf("double(scientific): %e\r\n", f64);
// 自动选择格式
printf("float(auto): %g\r\n", f32);
printf("double(auto): %g\r\n", f64);
printf("char: %c\r\n", ch);
printf("string: %s\r\n", str);
printf("pointer: %s\r\n", ptr);
// 字符的ASCII码值
printf("char as decimal: %d\r\n", ch);
printf("char as hex: 0x%02X\r\n", ch);
指针类型
int *ptr = &value;
void *vptr = &value;
printf("pointer address: %p\r\n", ptr);
printf("void pointer: %p\r\n", vptr);
// 如果需要具体数值
printf("pointer as hex: 0x%08lX\r\n", (unsigned long)ptr);