为什么Microsoft在他们的 winnt.h 文件中两次 typedef 声明什么构成 "double" ?

Why does Microsoft typedef twice in their winnt.h file, when declaring what constitutes as "double"?

本文关键字:声明 typedef 两次 什么 double winnt 他们的 Microsoft 文件 为什么      更新时间:2023-10-16
#if defined(_MAC) && defined(_MAC_INT_64)
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
#define MAXLONGLONG                      (0x7fffffffffffffff)

#else
typedef double LONGLONG;
typedef double ULONGLONG;
#endif //_MAC and int64
#endif

在c++头文件winnt.h(我认为是决定什么构成short, int, double等的文件)中,我注意到Microsoft在相同的预处理器条件作用域中两次定义了几个变量。

这样做的意义是什么?double不总是它的最后一个类型定义赋值是什么?是否有某种架构分配检查,发生的第一次尝试类型定义double为龙龙?

typedef定义了右侧,而不是左侧。在本例中,定义的类型是LONGLONGULONGLONG,而不是double