C++里面的类型 __w64 是什么意思

#define _W64 __w64
typedef unsigned __int64 uintptr_t;

__w64 和 __int64 代表了什么类型的数据呢?

__int64 是64位整型数 变量类型,相当于: long long int

unsigned __int64 是64位 无符号整型数 变量类型,相当于: unsigned long long int

__w64 是64位WORD, 对应于 16 位的 WORD, 32 位的 DWORD.

#define _W64 __w64 这样,__W64 大写和__w64 小写 一样
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-06
__w64是一个关键字, 编译器相关的关键字.

意思是说这个类型使用64位兼容方式编译, 在编译64位程序时指针就被视为64位宽, 而不是32位.
int也有可能会被视为64位.

__int64 应该就是
typedef int __w64 __int64 这样吧.本回答被网友采纳
第2个回答  2015-10-29
1、在64为编译器下,而且打开了/Wp64编译选项时,编译器会对使用了__w64的类型进行32位到64位移植性的判断,比如将64位指针赋给INT_PTR时,编译器就会发出警告。INT_PTR int(_W64 int即__w64 int) * _W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键字 用于指针运算

2、宏定义:
#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
typedef __int64 LONG_PTR, *PLONG_PTR;
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
#define __int3264 __int64#elsetypedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
typedef _W64 long LONG_PTR, *PLONG_PTR;
第3个回答  2012-07-23
Microsoft C/C++ features support for sized integer types. You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn type specifier, where n is 8, 16, 32, or 64.
The following example declares one variable for each of these types of sized integers:
__int8 nSmall; // Declares 8-bit integer
__int16 nMedium; // Declares 16-bit integer
__int32 nLarge; // Declares 32-bit integer
__int64 nHuge; // Declares 64-bit integer
---------------------------------------------------------------
The __w64 keyword lets you mark variables, such that when you compile with /Wp64 the compiler will report any warnings that would be reported if you were compiling with a 64-bit compiler.
Any typedef that has __w64 on it must be 32 bits on x86 and 64 bits on ia64.
The __w64 modifier should be specified on any typedefs that change size between 32 bit and 64 bit platforms. For any such type, __w64 should appear only on the 32-bit definition of the typedef. For example:
#ifdef _WIN64
typedef unsigned __int64 size_t;
#else
typedef _W64 unsigned int size_t;
#endif
__w64 is ignored if the compilation does not use /Wp64.

参考资料:MSDN Library

第4个回答  2016-01-08
在64为编译器下,而且打开了/Wp64编译选项时,编译器会对使用了__w64的类型进行32位到64位移植性的判断,比如将64位指针赋给INT_PTR时,编译器就会发出警告。INT_PTR int(_W64 int即__w64 int) * _W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键字 用于指针运算 看这段宏:
#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;

typedef __int64 LONG_PTR, *PLONG_PTR;
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;

#define __int3264 __int64

#else
typedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;

typedef _W64 long LONG_PTR, *PLONG_PTR;
typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;

#define __int3264 __int32

C++里面的类型 __w64 是什么意思
__int64 是64位整型数 变量类型,相当于: long long int unsigned __int64 是64位 无符号整型数 变量类型,相当于: unsigned long long int __w64 是64位WORD, 对应于 16 位的 WORD, 32 位的 DWORD.define _W64 __w64 这样,__W64 大写和__w64 小写 一样 ...

C++里面的类型__w64是什么意思
在64为编译器下,而且打开了\/Wp64编译选项时,编译器会对使用了__w64的类型进行32位到64位移植性的判断,比如将64位指针赋给INT_PTR时,编译器就会发出警告。INT_PTR int(_W64 int即__w64 int) * _W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键...

typedef _W64 unsigned int size_t;的意思是什么 啊
endif 所以,设计 size_t 就是为了适应多个 平台的 ,size_t是针对系统定制的一种数据类型,一般是整形,因为C\/C++标准只定义一最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。为了提高代码的可移植性,就有必要定议这样的数据类型。

VSCode配置C++开发环境(MinGW-w64)
在学习C++的道路上,选择轻量级且灵活的VSCode作为开发环境是一个明智选择。配置过程中虽然遇到了一些坑,但通过记录和分享,希望能为后来者提供指导。首先,从官方网站 code.visualstudio.com 下载并安装VSCode,注意确认其免费性质。安装时,建议避免安装到C盘,以保持空间整洁。接着,是关键的MinGW-w64配...

C++动态链接库的创建与调用(Windows 10 + VSCode + CMake)
MinGW-w64 是将经典C语言编译器GCC移植到Windows平台的版本,兼容Win32API,支持在Windows环境中编译Linux平台下的源代码为可执行程序。它是GCC在Windows环境的实现版本。下载离线安装包并直接解压到指定目录,添加到系统环境变量,然后通过PowerShell验证安装。代码编辑器-VSCode配置 从VSCode官网下载安装,安装...

vscode c\/c++环境配置(MinGW)+调用第三官方库方法
MinGW简介 MinGW和MinGW-w64都是windows平台的轻量级GNU工具链,即GCC的在Windows的移植版本。除了支持c\/c++以外,还支持其他功能。MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。MinGW 现已被 MinGW-w64 所取代,而且 ...

Windows系统中vscode的c\/c++开发环境配置(一):下载和安装
在Windows系统中,Visual Studio Code(vscode)作为一款轻量级源代码编辑器,为C\/C++开发提供了一个小而强大的跨平台环境。要开始开发,首先需要下载和安装vscode及其对应的GCC编译器MinGW-w64。本文主要介绍了如何下载不同版本的MinGW-w64,以及如何配置其环境变量以确保系统能找到编译器。下载vscode,访问...

MinGW-w64 C\/C++编译器下载和安装(以Matlab2018b为例)
>>setenv('MW_MINGW64_LOC', 'C:\\xxx\\mingw64')>>mex -setup 操作后,Matlab将显示已安装MinGW-w64编译器,此时即可进行C++或FORTRAN的编译,只需输入对应命令。参考以下资源了解详细安装配置步骤:1. CSDN网友 fighting_!的文章:【MATLAB】如何安装配置MinGW-w64 C\/C++编译器 2. CSDN网友“...

关于编译的重要概念总结
MinGW-w64是Windows上的GCC版本,可编译32\/64位可执行程序,区别于早期的MinGW。C++语言版本发展丰富,从C++98到C++20,引入了众多新特性,如C++11的现代特性,C++20的四大新特性。工程管理工具如Makefile通过规则定义编译流程,而cmake作为跨平台编译解决方案,生成本地化Makefile,简化了不同IDE间的编译...

XMake学习笔记(1):Windows(MSYS2)下MinGW-w64环境搭建和XMake安装_百...
在编程历程中,作者Eriktse意识到C++的编译构建过程对于不了解编译原理的人来说是个挑战。为此,他开始记录XMake的学习笔记,以帮助他人在Windows环境下通过MSYS2的Mingw-w64搭建环境并安装XMake。XMake是一款由国人开发的高效C++构建工具,其简洁直观的配置语法对新手友好,能够减轻项目开发中的繁琐工作,同时...

相似回答