C# 什么是int32?
我一直在努力理解。这是一个名为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或64C# 什么是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
和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: