是否有适用于16大小数据的类型



我听说在32位计算机(1990~2000?(中必须使用如下8大小的数据;(我听说……当时没有8号的型号……(他们曾经是这样的;

// 8 size 
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart; // I'm not sure of this part;
} LARGE_INTEGER;

所以我想试着为自己做一个16号的这样用可以吗??

// 16 size 
typedef union INTERGER128 {
struct {
LONGLONG LowPart;
LONGLONG HighPart;
} u;
} _INTERGER128;

是否有16大小数据的类型?

没有保证为16字节的标准基本类型。在一些语言实现中,有一个128位整数类型作为语言扩展。

typedef union INTERGER128 {
LONGLONG LowPart;
LONGLONG HighPart;
} _INTERGER128;

我认为你建议的联合在任何情况下都不会有用。此外,该并集的大小将与LONGLONG相同。您还没有展示它是如何定义的,但如果它是long long,那么在大多数系统上,它是64位类型;而不是128。

您可以定义一个自定义的128位类,如下所示:

struct INTERGER128 {
std::uint64_t low;
std::uint64_t high;
};

p.S._INTERGER128_LARGE_INTEGER标识符保留给语言实现。你应该用另一个名字。或者不要定义一个毫无意义的别名。

p.p.S.有一个基于标准库的宽整数的建议:p0539

我使用了另一种方法来创建一个16大小的可变

__declspec(align(16)) struct aa {
long long a;
long long b;
char c;
}

这样你就可以在structs 中制作一个16大小的填充

最新更新