各变量字节数

Win64, 也就是X64编译配置下:

char                1字节;

short               2字节;

int                   4字节;

long               4字节;

long long       8字节;

float               4字节;

double           8字节;

long double   8字节;

wchar_t         2字节;

bool              1字节;

(指针都是8字节)

char*            8字节;

bool*            8字节;

short*          8字节;

int*              8字节;

long*           8字节;

long long*   8字节;

float*           8字节;

double*       8字节;

long double*   8字节;

wchar_t*      8字节;

 

下面是Win32, 也就是X86编译配置下变量所占字节数

char            1字节;

short           2字节;

int       4字节;

long     4字节;

longlong   8字节;

float     4字节;

double    8字节;

long double      8字节;

wchar_t    2字节;

bool    1字节;

 (指针都是4字节)

char*    4字节;

bool*    4字节;

short*    4字节;

int*                4字节;

long*    4字节;

long long*  4字节;

float*    4字节;

double*   4字节;

long double* 4字节;

wchar_t*   4字节;

其他类型:

enum类型声明不占内存。
       eg. enum Color { Red, Black }; 不占内存。

      enum变量定义占int型内存。Win32下是占4B。
      eg. Color clr; 占sizeof(int)

struct的成员对齐问题:

对于结构体,编译器会自动进行成员对齐以提高运算效率。缺省情况下,编译器会为结构体的每个成员按其自然对界(按结构体中的成员中size最大的成员对齐)条件分配空间,每个成员按照他们被声明的顺序在内存中顺序存储。

联合体(union)的结构体空间要足够大,要等于最长的一个结构体 变量的空间,但是这个最长的空间要满足以下条件:

1.要大于等于最长一个结构变量的空间

2.并且要能够整除其他结构变量的数据长度(长度要是元类型长度的最小公倍数)。

总结:经上述比较,一般变量在X86和X64系统下长度没什么区别,区别在于指针的 寻址范围从32位增加到了64位。如果考虑对64位系统下程序的兼容性,指针是唯一需要注意的地方。从32位系统过渡到64位系统不同于从16位系统过渡 到32位系统,因为DOS系统下int只有2个字节,而Windows系统下int是4个字节,过渡到64位系统后int的字节数没有增加。如果使用 Windows系统编程,支持64位需要Visual Studio 2005/2008均可,而早期版本是不支持64位平台的。

转载于:https://www.cnblogs.com/junglefish/p/5464100.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日本最惨数学天才!37岁裸辞,房子被政府没收,向全村人乞讨,一家五口只能吃野菜.........

全世界只有3.14 % 的人关注了爆炸吧知识数学是火他是飞蛾多年以后,当冈熙哉站在桥本市的数学家纪念碑前,准会想起父亲请他吃面包片的那个遥远的夜晚。当时,他们一家五口蜗居在邻居施舍租出的小库房里。冈洁家三代同堂在他的回忆中&#xff0c…

C# WPF MVVM开发框架Caliburn.Micro 自定义Conventions⑩

处理自定义约定虽然ViewLocator和ViewModelLocator类通过提供对每个类的NameTransformer实例的公共访问来支持非标准约定,但对于那些不熟悉正则表达式语法的人来说,添加基于正则表达式的新名称转换规则可能是一项艰巨的任务。此外,由于NameTr…

html 使用ajax php函数吗,php – 为什么用AJAX加载html后jQuery更改函数不起作用?

我加载一个表单并从PHP文件中通过AJAX动态填充select.在实现动态AJAX填充选择之前,我的更改功能正常工作(当用户选择“其他”时,它只显示另一个输入).现在更改功能不起作用.我知道ready函数正在触发,因为jStepper函数运行.我已尝试使用ready函数内外的更改函数.我觉得在AJAX ge…

Asp.net MVC razor语法参考

Razor语法的快捷参考http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/ 只是copy下来便于查阅! I gave a presentation to another team at Microsoft yesterday on ASP.NET MVC and the Razor view engine and someone asked if there wa…

3、Eternal框架-控制器

2019独角兽企业重金招聘Python工程师标准>>> 介绍 MVC:Model-View-Controller,包括三类对象,Model模型对象、View视图表示、Controller控制器。在应用MVC方式以前,通常将这三个对象的功能合到了一起,通过分…

java配置JDK

1、将JDK文件拷入电脑并解压缩 根据系统版本选择JDK版本,并将eclipse解压缩 2、配置系统环境变量 右键我的电脑--属性--高级系统设置--环境变量 新建JAVA_HOME如图所示(严格区分大小写) 修改环境变量Path 在变量值一栏的最前面加上%JAVA_HOM…

可怕!原来我们看到的世界地图一直都是“错”的!多年的地理白学了...

▲ 点击查看几乎每个家庭都会有两张地图:一张世界地图,一张中国地图。薄薄的两张纸,蕴藏着让每个人学会“看世界”的磅礴力量。哈佛上一任校长,也是300多年来唯一一位女校长德鲁吉尔平福斯特(Drew Gilpin Faust&#x…

C# 是否可以将 动态或匿名类型 转成 强类型 ?

咨询区 ProfK假如我有一个匿名类型或者动态类型,它的结构定义和我的一个强类型的结构是一致的,请问 C# 中是否有内置的方法可以强转为指定 强类型 ?我知道可以使用 AutoMapper,但这有点重量级了,并且实现起来也稍微繁琐…

退火算法 matlab,模拟退火算法(MATLAB实现).pdf

退火,算法,实现退火,算法,实现退火,算法,实现模拟火算法(MATLAB 实现)实验用例:用模拟退火算法解决如下10 个城市的TSP 问题,该问题最优解为f opt 2.691 。表1 10 个城市的坐标城市 X 坐标 Y 坐标 城市 X 坐标 Y 坐标1 0.6683 0.2536 6 0.2293 0.76102 0…

sudo apt-get update

常见命令: sudo apt-get update sudo apt-get install gcc sudo apt-get install g++ gcc --version g++ --version 要用apt-get这种方式安装LAMP时,最好先运行下面在命令升级自己的系统这样是为了更新源,而如果你找的源不好,可能安装LMAP失败。#sudo apt-get update…

读jquery 权威指南[7]-性能优化与最佳实践

一、优化选择器执行速度 1. 优先使用ID选择器和标记选择器 使用选择器时应该首选ID选择器($("#id")),其次是标记选择器($("div")),最后再选用class、属性等选择器。避免重复使用ID号修饰ID号,例如…

遍历某个文件夹下的所有文件并格式化显示出来

public class FileList { private static int num;//定义往下循环了多少层 public static void deepList(File file){ if (file.isFile() || file.listFiles().length0) { return; } else { File[] files file.listF…

Spring高级应用之注入各类集合

先定义一个测试类&#xff0c;由于本文将要介绍注入各种集合时如何配置&#xff0c;故这个类包含各种集合&#xff0c;类名和属性名不好取&#xff0c;没有特殊含义&#xff1a; ?123456789public class Test { private List<String> listTest; private Map<String, …

.NET 程序测试 Java 项目 log4j2 是否存在远程代码执行漏洞

最近两天被朋友圈的“Apache Log4j2 远程代码执行漏洞”刷屏了&#xff0c;主要是因为组件存在 Java JNDI 注入漏洞&#xff1a;当程序将用户输入的数据记入日志时&#xff0c;攻击者通过构造特殊请求&#xff0c;来触发 Apache Log4j2 中的远程代码执行漏洞&#xff0c;从而利…

matlab总最近邻法则,MATLAB中最近邻插值算法

一段时间后&#xff0c;我在MATLAB Image Processing Toolbox中通过了imresize功能的代码&#xff0c;为图像的最近邻插值创建了一个简化版本。以下是如何应用于您的问题&#xff1a;%# Initializations:scale [2 2]; %# The resolution scale factors: [rows columns]oldSize…

史上最牛的文科生:法学出身,却发明出十进制计算器,折磨无数人的微积分符号,跨界40多个领域惊艳学术圈

全世界只有3.14 % 的人关注了爆炸吧知识“世界上没有完全相同的两片树叶。”想必大家对这句话耳熟能详&#xff0c;但却不知道这名言背后的作者是谁吧&#xff1f;其实&#xff0c;他就是与牛顿争论微积分优先权大战中的大佬&#xff1a;莱布尼茨。博览群书 天赋异禀1646年&…

如何解决secureCRT里面的The remote system refused the connection.

不废话,先爆照 Ubuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。然后确认sshserver是否启动了: ps -e |grep ssh 如果只有ssh-agent那ss

为operamasks增加HTML扩展方式的组件调用

#为operamasks增加HTML扩展方式的组件调用##背景 之前的[博文](http://www.cnblogs.com/p2227/p/3540858.html)中有提及到&#xff0c;发现easyui中的combobox,datebox,layout都有效率问题&#xff0c;其中layout的问题在[这里](http://www.cnblogs.com/p2227/p/3541162.html)有…

python 带pydev的eclipse无法导入win32api包(或无法导入其他包)

需要重新配置pydev中的python解释器&#xff0c;因为它不会自动更新。 将原先的python.exe先remove掉&#xff0c;再重新new回来&#xff0c;new回来的时候会让你勾选system libs&#xff0c;把你想要更新的勾选上去就可以了。转载于:https://blog.51cto.com/xuewei/1111889

OC之非ARC环境下循环retain问题

观察上述情况&#xff0c;上述就是著名的循环引用问题&#xff0c;对于此类问题&#xff0c;“你包含我&#xff0c;我包含你”&#xff0c;里面相关的对象占用的内存永远回收不了&#xff0c;解决办法很简单&#xff0c;与常规方法不同。正常情况下&#xff0c;我们应在Person…