Windows内核编程之:数据类型

/************************************************************************
* 数据类型定义
*    c语言的定义                DDK中的定义
*    void                      VOID
*    char                      CHAR
*    short                      SHORT
*    long                       LONG
*    wchar_t                    WCHAR
*    char*                      PCHAR
*    wchar_t*                   PWCHAR
*************************************************************************/
//一、DDK添加了一种64位的长整型整数
/*
*64位形整数不是标准C语言定义
*只有微软的编译器才识别这种类型
*64位整数的常量前面是一个数字,后面加上i64结尾
*支持加、减、乘、除
*/
LONGLONG llValue = 100i64;

/*
*DDK提供了另外一种的64位整数的表示方法
*LARGE_INTEGER数据结构
*区别:    
*    LONGLONG是基本数据类型
*    LARGE_INTEGER是数据结构
*/
typedef union _LARGE_INTEGER{
    struct{
        ULONG LowPart;
        LONG HighPart;
    };
    struct{
        ULONG LowPart;
        LONG HighPart;
    } u;
    LONGLONG QuadPart;
};

//LARGE_INTEGER的三个定义:
/******
*(1)LARGE_INTEGER可以认为是由两部分组成。一个低32位的整数LowPart
*一个是高32位的整数HighPart。在little endian的情况下,低32位数字在前
*高32位数字在后
*/
//如果将这个64位数赋值为100,可以这样写:
LARGE_INTEGER LargerValue;
LargerValue.LowPart = 100;
LargerValue.HighPart = 0;

/******
*(2)LARGE_INTEGER可以认为是由两部分组成。一个低32位的整数LowPart
*一个是高32位的整数HighPart。在beg endian的情况下,高32位数字在前
*低32位数字在后
*/
//如果将这个64位数赋值为100,可以这样写:
LARGE_INTEGER LargerValue;
LargerValue.u.LowPart = 100;
LargerValue.u.HighPart = 0;

/******
*(3)LARGE_INTEGER等价于LONGLONG数据
*/
//如果将这个64位数赋值为100,可以这样写:
LARGE_INTEGER LargerValue;
LargerValue.QuadPart = 100i64;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值