c - 如何用 printf 打印 1 个字节?

标签 c printf format-specifiers

我知道当 %xprintf() 一起使用时,我们从堆栈中打印 4 个字节(十六进制的 int)。但我只想打印 1 个字节。有办法做到这一点吗?

最佳答案

假设:您想打印一个 1 字节宽的变量的值,即 char

如果您有一个 char 变量,比如 char x = 0; 并且想要打印该值,请使用 %hhx 格式说明符使用 printf()

有点像

 printf("%hhx", x);

否则,由于默认参数提升,像这样的语句

  printf("%x", x);

也是正确的,因为 printf() 不会从 stack 读取 sizeof(unsigned int) 的值>x 将根据其类型进行读取,并且无论如何都会将其提升为所需的类型。

关于c - 如何用 printf 打印 1 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638330/

相关文章:

c - 警告 : array subscript is above array bounds [-Warray-bounds] in module

c - 缺少 PDB 文件

c - Ncurses,非阻塞getch错过了第一个字符

c++ - 打印指向成员字段的指针

c - 当格式说明符不正确时,printf 函数如何在 c 中工作?

c - 从数组插入链表节点,但并非所有节点都被插入

c - 为什么这个简单的 strcat 在运行时会崩溃?

谁能解释以下程序扫描值的输出..?

c - printf中的 "%.*s"是什么意思?

string-formatting - sprintf_s中的格式控制说明符%016I64X是什么意思