Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/346.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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# 什么是int32?_C#_C++_C_Pinvoke - Fatal编程技术网

C# 什么是int32?

C# 什么是int32?,c#,c++,c,pinvoke,C#,C++,C,Pinvoke,我一直在努力理解。这是一个名为W32时间\状态\信息的结构的参考页 我想在C代码中使用W32TimeQueryStatus方法,但我不知道如何在C代码中定义结构,该方法将指向它的指针作为参数。这些东西都是什么?我已经搜索了双下划线c之类的东西,但我找到的所有东西都非常不具体 我可能需要单独询问handle\t参数,所以现在我只想询问一下如何定义此结构并将其传递给C中的pinvoke方法。使用第一个链接说: Microsoft C/C++支持大小整数类型。你可以 使用_intn声明8位、16位、3

我一直在努力理解。这是一个名为W32时间\状态\信息的结构的参考页

我想在C代码中使用W32TimeQueryStatus方法,但我不知道如何在C代码中定义结构,该方法将指向它的指针作为参数。这些东西都是什么?我已经搜索了双下划线c之类的东西,但我找到的所有东西都非常不具体

我可能需要单独询问handle\t参数,所以现在我只想询问一下如何定义此结构并将其传递给C中的pinvoke方法。

使用第一个链接说:

Microsoft C/C++支持大小整数类型。你可以 使用_intn声明8位、16位、32位或64位整数变量 类型说明符,其中n是8、16、32或64

正如您在c上看到的,等价物是System.Int64,使用第一个链接时会显示:

Microsoft C/C++支持大小整数类型。你可以 使用_intn声明8位、16位、32位或64位整数变量 类型说明符,其中n是8、16、32或64


和C等效的是St.In64/P> < P> 2003 C++标准的摘录:

每个包含双下划线uu_uu或以下划线开头,后跟大写字母2.11的名称都保留给实现以供任何使用


为简化起见,_int32是一个在32位上编码的整数,而_int64是在64位上编码的整数。您可以消除标准int类型的大小抽象,用这个可以确定变量将从2003 C++标准中精确地分配4字节:

< p>:

每个包含双下划线uu_uu或以下划线开头,后跟大写字母2.11的名称都保留给实现以供任何使用


为简化起见,_int32是一个在32位上编码的整数,而_int64是在64位上编码的整数。您消除了标准int类型的大小抽象,因此可以确定变量将精确地分配4个字节

用Uint32替换无符号的int 32,对于有符号的int 32,使用int 32。对于uuu int64也是如此。

用Uint32替换未签名的uuu int32,对于已签名的uuu int32,使用int32。_uuuint64也是如此。

正如其他人所说,有符号的uuu int32是32位2的补码整数,无符号的uuu int32是32位无符号整数

使用int32之前的_uuu来形成_uuInt32使其成为保留标识符。这样做的一个重要优点是,它不会与兼容的预先存在的用户代码发生冲突

像下面这样使用会鼓励编译器依赖性

unsigned __int32 ulSize;
最好使用以下方法。即使没有为您的编译器提供,也有在线的编译器

#include <stdint.h>
uint32_t ulSize;
正如其他人所说,有符号的_int32是32位2的补码整数,无符号的_int32是32位无符号整数

使用int32之前的_uuu来形成_uuInt32使其成为保留标识符。这样做的一个重要优点是,它不会与兼容的预先存在的用户代码发生冲突

像下面这样使用会鼓励编译器依赖性

unsigned __int32 ulSize;
最好使用以下方法。即使没有为您的编译器提供,也有在线的编译器

#include <stdint.h>
uint32_t ulSize;

它是保证32位长的有符号整数数据类型。@πάνταῥεῖ 谢谢,所以我应该在C代码中使用Int32?分别是Int32和Int64-句柄将是IntPtr或UIntPtr:它是保证32位长的有符号整数数据类型。@πάνταῥεῖ 谢谢,所以我应该在C代码中使用Int32?分别是Int32和Int64-句柄将是IntPtr或uintpttr: