Sta*_*owl 1 c c++ msdn pointers
在此网站上:Windows数据类型
出现了这个话题的问题.
LP代表我认为的长指针 - 但不久.UINT_PTR代表无符号的int指针我再次设定 - 但是没有指针.
有人知道这个背景吗?
引用" 长指针 "(LP-types):
那里有时间(奔腾前),你有长短指针.由于WINAPI在那段时间内已经存在,而今天仍然试图与那些日子的代码保持兼容,所以LPsomething-types幸免于难.
参考UINT_PTR:
这是一个足够宽的整数,用于保存指针的值.C11-Standard定义了如下类型:
7.20.1.4能够保存对象指针的整数类型
1以下类型指定一个带符号的整数类型,其属性是任何有效的void指针都可以转换为此类型,然后转换回指向void的指针,结果将等于原始指针:
Run Code Online (Sandbox Code Playgroud)intptr_t以下类型指定一个无符号整数类型,其属性是任何有效的void指针都可以转换为此类型,然后转换回指向void的指针,结果将等于原始指针:
Run Code Online (Sandbox Code Playgroud)uintptr_t这些类型是可选的.
UINT_PTR不是指针类型.它是一个足够宽度的无符号整数类型,用于存储指针值(因此其宽度取决于目标平台).它的存在是因为int和unsigned int不一定足够宽以容纳一个指针(特别是在Windows针对x64其中int仍然是32位,并且指针是64位).