为什么%p不显示指针的完整宽度?

2024-01-30

如果我没记错的话,在64位机器上,指针相当于一个介于0 and 2^64-1。因此得到以下结果:

printf("%p",    (void*)     -1); → 0xffffffffffffffff
printf("0x%lx", (uintptr_t) -1); → 0xffffffffffffffff

然而,当我从刚刚分配的对象打印指针时,结果不显示相同的宽度:

printf("%p", (void*) &myobject); → 0x70d940

为什么我的所有对象(总是)在内存空间的开头给出一个地址,有什么原因吗?得益于虚拟内存,(从程序的角度来看)基本上可以将其放置在 64 位空间中的任何位置。

还有为什么不%p默认打印全宽? (我希望如果表现得像0x%016lx)

编辑:另外,有什么原因吗0x018p无效?

error : fanion « 0 » used with « %p » gnu_printf format

正如评论中指出的那样,

%p可以以其选择的任何方式格式化地址。它不一定是十六进制(尽管通常是十六进制);输出不必开始0x or 0X;它可能会以大写或小写形式打印十六进制。

Try printf("%p\n", (void *)0);— 在 Mac 上,只打印0即使其他值打印为 0x1234 样式。尝试printf("%p\n", (void *)1024);— 它可能会打印一个简短的地址0x400.

标准(POSIX 或 C 或 C++)中没有要求指定输出内容%p应该看起来像。

如果您想控制指针的格式,请使用uintptr_tPRIzPTR宏来自<inttypes.h>:

void *vp = 0;
printf("0x%.16" PRIXPTR " contains 0x%" PRIXPTR "\n",
       (uintptr_t)&vp, (uintptr_t)vp);

Or use PRIxPTR如果您喜欢小写的十六进制数字。我不喜欢,但我确实喜欢0x前缀,所以当我不受别人可疑的美学约束时我会使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么%p不显示指针的完整宽度? 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • WebAPI 2.2 OData v4 [EnableQuery] 适用于何处?

    截至 2015 年 1 月 应用 EnableQueryAttribute 的正确 错误在哪里 该文档链接如下 http www asp net web api overview odata support in aspnet web ap
  • 运动模拟游戏的动态如何运作?

    我想制作一款棒球模拟游戏 这些体育管理游戏是靠运气吗 完全靠运气的管理游戏并不公平 但也不能太可预测 这些游戏背后的逻辑是如何运作的 这都是关于概率和统计的 您根据指定的某些属性设置某事发生的机会 然后在游戏过程中加入随机因素 使事情变得更
  • 是否可以运行不在文件中的node.js脚本?

    我需要使用 C 应用程序中的 node js 运行 javascript 代码 但我不想之前将代码保存到文件中 是否可以直接将代码转发到node exe 而不将其临时保存到文件中 是的 您可以使用 eval 标志来运行代码 node eva
  • Flutter如何画半圆(半圆)

    怎样才能画出这样的半圆呢 Code class DrawHalfCircleClipper extends CustomClipper
  • evt.preventDefault(); 的反义词是什么

    一旦我解雇了evt preventDefault 如何再次恢复默认操作 根据 Prescott 的评论 相反 evt preventDefault 可能 本质上等于 默认 因为我们不再阻止它 否则 我倾向于向您指出其他评论和答案提供的答案
  • Eclipse 显示奇怪的 [DEBUG],我想禁用它

    根据下面的代码 我将程序的每一个细节都作为调试来获取 我想将其删除 运行应用程序时是否花费太多时间 我怎样才能禁用那些 DEBUG 2012 01 24 18 47 25 305 ERROR SqliteDatabaseType WARNI
  • 如何制作 tiff z-stack 保存或添加元数据?

    我有许多 tiff 文件 我想使用 python 将它们合并到 z 堆栈中 各个文件都有我想保存的元数据 OME https www openmicroscopy org site support ome model ome tiff 在我
  • 如何将查询参数重写为 Apache 中的路径参数?

    我目前有一个网站 正在尝试在搜索引擎优化方面进行优化 我的网站使用以下 URL 域名 com app about 在我的应用程序中 GET app 正如预期的那样 设置为 关于 现在 我想让这样的 URLdomain com about被视
  • Raven 查询返回集合包含的 0 个结果

    我有一个基本架构 Post Labels Text Mine Text Incomplete 我正在查询 raven 询问所有带有 我的 和 不完整 标签的帖子 queryable Where candidate gt candidate
  • 从现有的 OutputStream 创建 Java-Zip-Archive

    如果我不想将生成的存档写入磁盘而是将其发送到其他地方 是否可以在 Java 中创建 Zip 存档 这个想法是 当您想通过 HTTP 例如 从数据库 Blob 或任何其他数据存储 将 Zip 存档发送给用户时 在磁盘上创建文件可能是一种浪费
  • Matplotlib:如何更改双条形图的图大小

    我使用以下代码在 matplotlib 中绘制了双条形图 x pd Series range 12 y self cust data Cluster ID value counts sort index z self cust data C
  • jsf动态改变托管bean

    如何动态更改托管 bean 的 value 属性 例如 我有 h inputText 并且根据输入的文本 托管 bean 必须是 studentBean login 或 lecturerBean login 简化形式
  • Ghost脚本不可写

    尝试在新 Macbook 上安装 Octave 但使用 Homebrew 时不断遇到问题 我在这里遵循指示 http wiki octave org Octave for MacOS X http wiki octave org Octav
  • TCPDF pdf 中的特定字体

    有人可以告诉我我做错了什么吗 我需要在 TCPDF 生成的 pdf 中使用 Arial 字体 首先我尝试使用它 1 我从Windows字体目录中获取Arial并将其放入TCPDF目录中 2 接下来我在脚本中写道 fontname pdf g
  • Django ORM:分组依据和最大值

    我有一个看起来像这样的模型 Requests user req time req text 在数据库中 记录可以如下所示 id user id req time req text 1 1 TIMESTAMP YES 2 1 TIMESTAM
  • 仅在 Apple Watch 上请求位置,无需在配对手机上请求位置代码

    我到处都看过 包括苹果的示例应用程序 https developer apple com library content samplecode PotLoc Listings Potloc WatchKit Extension Stream
  • ZeroMQ性能测试。准确的延迟是多少?

    我正在使用 zmq 跨进程传输消息 并且我想做一些性能测试来获取延迟和吞吐量 官方网站给出了指南讲述如何运行性能测试 http zeromq org results perf howto 例如 我尝试过 local lat tcp 1521
  • macOS 10.15 Catalina 安装中缺少 PHP 7.3.8 zip 扩展名 [重复]

    这个问题在这里已经有答案了 MacOS 10 15 Catalina 安装的 PHP7 3 8 版本不包含 PHP 扩展 zip 我该如何查找并安装该 zip 扩展名 Brew install php73 zip 报告没有具有该名称的可用公
  • AppDelegate、RootViewController 和 UIApplication 之间是什么关系?

    我试图找出 appdelegate RootViewControoler 和 UIApplication 之间的关系 到目前为止 这是我已经弄清楚的 当启动你的应用程序时 main m 被加载 从这里 您的 MainWindow xib 被
  • 为什么%p不显示指针的完整宽度?

    如果我没记错的话 在64位机器上 指针相当于一个介于0 and 2 64 1 因此得到以下结果 printf p void 1 0xffffffffffffffff printf 0x lx uintptr t 1 0xffffffffff