为什么Microsoft在他们的 winnt.h 文件中两次 typedef 声明什么构成 "double" ?
Why does Microsoft typedef twice in their winnt.h file, when declaring what constitutes as "double"?
#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
定义了右侧,而不是左侧。在本例中,定义的类型是LONGLONG
和ULONGLONG
,而不是double
。
相关文章:
- 向前声明指向类的 typedef 指针
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 如何创建 typedef 结构的前向声明
- 格式为`int Typedef my_int;`的Typedef声明
- 无法转发声明C typedef结构-正在查找其他建议
- "typedef"类型名称是否可以像"struct"定义那样声明指向结构的指针?
- 具有未声明/未定义类型的 typedef 结构
- 我们可以在声明中的任何位置放置"typedef"说明符吗?
- C++ typedef 函数指针,并在一个语句中声明一个指针
- 错误:使用 tesseract 引擎时 C++ 中的声明'typedef struct tagBLOB BLOB'冲突
- typedef 应该同时在类定义和类声明中吗?
- 向前声明 typedef 保护
- "myStateType"未在此范围内声明,原因 #typedef
- 在 typedef 结构中声明一个数组
- 如何在包含 typedef 时用从右到左的规则解释变量声明
- C 迭代器从Typedef std :: Map作为模板参数声明
- C 使用声明,Typedef和数组类型
- 如何在C++标头中声明typedef
- 使用 FreeTDS 库时出现声明冲突的声明“typedef int RETCODE”错误
- 在c++类中向前声明typedef