Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LPCSTR没有';长';而UINT_PTR没有指针?_C++_C_Pointers_Msdn - Fatal编程技术网

C++ LPCSTR没有';长';而UINT_PTR没有指针?

C++ LPCSTR没有';长';而UINT_PTR没有指针?,c++,c,pointers,msdn,C++,C,Pointers,Msdn,在本网站上: 这个话题的问题出现了 我猜LP代表长指针,但没有长指针。 UINT_PTR代表无符号int指针,我再次假定,但这里没有指针 有人知道这件事的背景吗?指的是“长指针”(LP-types): 在奔腾时代之前,你有过这样的经历。由于WINAPI在那段时间已经存在,而且今天仍然试图与当时的代码保持兼容,LPsomething-类型仍然存在 参考UINT\u PTR: 这是一个足够宽的整数,可以容纳指针的值。C11标准对此类类型的定义如下: 7.20.1.4能够容纳对象指针的整数类型 1以下

在本网站上:

这个话题的问题出现了

我猜LP代表长指针,但没有长指针。 UINT_PTR代表无符号int指针,我再次假定,但这里没有指针

有人知道这件事的背景吗?

指的是“长指针”(
LP
-types):

在奔腾时代之前,你有过这样的经历。由于WINAPI在那段时间已经存在,而且今天仍然试图与当时的代码保持兼容,
LPsomething
-类型仍然存在

参考
UINT\u PTR

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

7.20.1.4能够容纳对象指针的整数类型

1以下类型使用任何有效的 指向void的指针可以转换为此类型,然后再转换回指向void的指针, 结果将与原始指针进行比较:

  intptr_t
  uintptr_t
以下类型使用任何有效的属性指定无符号整数类型 指向void的指针可以转换为此类型,然后再转换回指向void的指针, 结果将与原始指针进行比较:

  intptr_t
  uintptr_t
这些类型是可选的

引用“长指针”(
LP
-类型):

在奔腾时代之前,你有过这样的经历。由于WINAPI在那段时间已经存在,而且今天仍然试图与当时的代码保持兼容,
LPsomething
-类型仍然存在

参考
UINT\u PTR

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

7.20.1.4能够容纳对象指针的整数类型

1以下类型使用任何有效的 指向void的指针可以转换为此类型,然后再转换回指向void的指针, 结果将与原始指针进行比较:

  intptr_t
  uintptr_t
以下类型使用任何有效的属性指定无符号整数类型 指向void的指针可以转换为此类型,然后再转换回指向void的指针, 结果将与原始指针进行比较:

  intptr_t
  uintptr_t
这些类型是可选的


UINT\u PTR
不是指针类型。它是一种无符号整数类型,其宽度足以存储指针值(因此其宽度取决于目标平台)。它的存在是因为
int
unsigned int
的宽度不一定足以容纳指针(特别是在x64的Windows上,
int
仍然是32位,指针是64位)。

UINT\u PTR
不是指针类型。它是一种无符号整数类型,其宽度足以存储指针值(因此其宽度取决于目标平台)。它的存在是因为
int
unsigned int
的宽度不一定足够容纳指针(特别是在x64的Windows上,
int
仍然是32位,指针是64位)。

你的问题是矛盾的。你的问题是矛盾的。长指针来自16位的日子,当你有段:偏移内存寻址。长指针(也称为远指针)包括段和偏移量。近指针仅将偏移包含在段中。这纯粹是英特尔x86体系结构的产物。长指针来自16位时代,那时您有段:偏移内存寻址。长指针(也称为远指针)包括段和偏移量。近指针仅将偏移包含在段中。这纯粹是一种英特尔x86体系结构的东西。不仅在x64上int是32位的。在某些平台上,虽然平台有64位整数(LLP64系统),但长度仍然是32位,但这取决于编译器/系统,而不是CPU。请参见同一平台上的Linux与MS Windows。不仅在x64上int为32位。在某些平台上,虽然平台有64位整数(LLP64系统),但长度仍然是32位,但这取决于编译器/系统,而不是CPU。参见同一平台上的Linux与MS Windows。