首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LPCSTR没有'long‘而UINT_PTR没有指针?

问LPCSTR没有'long‘而UINT_PTR没有指针?
EN

Stack Overflow用户
提问于 2014-05-09 15:04:31
回答 2查看 218关注 0票数 1

在这个网站上:Windows数据类型

出现了这一专题的问题。

我猜LP代表长指针,但没有长。UINT_PTR代表无符号的int指针,我想是这样的--但是没有指针。

有人知道这事的背景吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-09 15:08:22

(**LP**-types): 指的是"long pointers“

在那里(奔腾前)你有长短指针。由于WINAPI在那些时候已经存在,而且今天仍然试图与当时的代码兼容,所以LPsomething-types幸存了下来。

UINT_PTR**:** 指

这是一个足够宽的整数,足以容纳指针的值。C11-标准将这类类型定义如下:

7.20.1.4能够保存对象指针的整数类型 1.下面的类型指定一个有符号整数类型,该类型的属性是,任何指向void的有效指针都可以转换为此类型,然后再转换回指针为void,结果将与原始指针相比较: intptr_t 下面的类型指定一个无符号整数类型,该类型的属性是,任何指向void的有效指针都可以转换为此类型,然后再转换回指针为void,结果将与原始指针相比较: uintptr_t 这些类型是可选的。

票数 8
EN

Stack Overflow用户

发布于 2014-05-09 15:10:26

UINT_PTR不是指针类型。它是一个无符号整数类型,宽度足以存储指针值(因此它的宽度取决于目标平台)。它的存在是因为int和unsigned int不一定足够宽到足以容纳指针(特别是在Windowsforx64上,int仍然是32位,指针是64位)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23567959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档