linux - 打印指针 : can the leading 0x be eliminated?

标签 linux printf

Linux printf 将 %p 参数呈现为带有前导 0x 的十六进制数字。有没有办法让它不打印 0x? (需要在 32 位和 64 位上工作。)

最佳答案

您可以使用 uintptr_t 的格式说明符来自 <inttypes.h> :

#include <inttypes.h>
[...]
printf("%"PRIxPTR"\n", (uintptr_t) p);

这类似于 %x对于 uintptr_t类型,它是一种整数类型,能够从/到任何指针类型进行往返转换。

关于linux - 打印指针 : can the leading 0x be eliminated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040595/

相关文章:

java - 我已经使用 docker 构建了命令并且输出成功并且我无法打开本地主机 7604

linux - 使用 sed 命令的 Jenkinsfile ssh 问题

c++ - 在 C++ 中像 Perl 一样打印

perl - printf "Modification of a read-only value attempted"错误

r - 如何使用 sprintf 打印以 0 开头的十六进制数,使其宽度为 2?

c - 尝试在 C 中打印 double 时没有得到正确的输出

在 Linux 中检查 ELF 是否使用 UPX 打包

c++ - 使用共享对象文件

c - 获取__data_start符号的地址

c - printf 改变值