LARGE_INTEGER 大整数结构体的解析「建议收藏」

LARGE_INTEGER 大整数结构体的解析「建议收藏」在“WinNT.h”文件中定义了一个结构体LARGE_INTEGER,十分巧妙#ifdefined(MIDL_PASS)typedefstruct_LARGE_INTEGER{#else//MIDL_PASStypedefunion_LARGE_INTEGER{  struct{    DWORDLowPart;    LONGHighPart;  …

大家好,又见面了,我是你们的朋友全栈君。

在“WinNT.h”文件中定义了一个结构体LARGE_INTEGER,十分巧妙

#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER {

#else // MIDL_PASS
typedef union _LARGE_INTEGER {

    struct {

        DWORD LowPart;
        LONG HighPart;
    } DUMMYSTRUCTNAME;
    struct {

        DWORD LowPart;
        LONG HighPart;
    } u;
#endif //MIDL_PASS
    LONGLONG QuadPart;

} LARGE_INTEGER;

解释:根据预编译指令若定义宏MIDL_PASS,则将 结构体命名为LARGE_INTEGER,若未定义宏MIDL_PASS,则将联合体命名为LARGE_INTEGER。实际上如果编译器具有内置支持64位整数,使用QuadPart成员中存储的64位整数。否则,使用LowPart和HighPart成员的存储的64位整数。

在不支持内置64位情况下,即,采用联合体结构。联合体有两部分组成,DUMMYSTRUCTNAME 和 u:因为联合的长度取决于最长的数据成员的长度,相当于成员公用内存。

(1)在小端的情况下,因为低32位数字在前,高32位在后。

如果将这个64位大整数赋值0x1234:

LARGE_INTEGER data;  
data.LowPart = 0x34;  
data.HighPart = 0x12;  

(2)在大端的情况下,高32位数字在前,低32位在后。

如果将这个64位大整数赋值0x1234:

LARGE_INTEGER data;  
data.u.LowPart = 0x34;  
data.u.HighPart = 0x12;  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 排序二叉树及其Java实现[通俗易懂]

    排序二叉树及其Java实现[通俗易懂]定义排序二叉树的定义也是递归定义的,需要满足:(1)若它的左子树不为空,则左子树上所有节点的值要均小于根节点的值;(2)若它的右子树不为空,则右子树上所有节点的值要均大于根节点的值;(3)左、右子树也分别是排序二叉树如下图,对于排序二叉树,若按中序遍历就可以得到由小到大的有序序列。创建创建排序二叉树的步骤就是不断像排序二叉树中添加新节点(p)的过程:(1)以根节

    2022年7月25日
    15
  • linux下kegg注释软件,网页工具KOBAS进行KEGG富集分析

    KOBAS的介绍KOBAS是北大生物信息中心研发的一个网页工具,用来基因/蛋白功能注释(注释模块)和功能基因集富集(富集模块)。以下是KOBAS的英文介绍:KOBAS3.0isawebserverforgene/proteinfunctionalannotation(Annotatemodule)andfunctionalgenesetenrichment(Enri…

    2022年4月12日
    106
  • 基于Java和MySQL的图书管理系统[通俗易懂]

    Java图书管理系统设计人:wangyunpeng_bio项目需求随着计算机的普及和应用水平的提高,经过考察比较,决定利用自己的Java知识开发小型的图书管理系统,方便图书的管理。图书管理系统是典型的信息管理系统。本次作业利用JAVA开发工具Eclipse和MySQL数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。…

    2022年4月12日
    124
  • Java中this关键字的作用和用法

    Java中this关键字的作用和用法写在前面简单总结一下Java中this关键字的作用与用法。参考文献:Java中this关键字详解Javathis关键字用法java中this关键字的用法Javathis关键字java中this关键字的作用功能概述this关键字主要有三个应用:this调用本类中的属性,也就是类中的成员变量;this调用本类中的其他方法;this调用本类中的其他构造…

    2022年6月24日
    24
  • 腾讯云服务器如何安装宝塔_服务器宝塔面板是什么

    腾讯云服务器如何安装宝塔_服务器宝塔面板是什么宝塔面板是一款服务器管理软件,用户可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化CPU、内存、流量监控图表,计划任务等功能。首先,开放腾讯云服务器宝塔端口:点进来后,点击防火墙:可以看到我们的服务器仅开放了……

    2022年10月20日
    3
  • 如何将ts格式文件转成MP4格式文件

    如何将ts格式文件转成MP4格式文件这里写自定义目录标题欢迎使用 Markdown 编辑器新的改变功能快捷键合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchart 流程图导出与导入导出导入欢迎使用 Ma

    2025年11月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号