注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

C/C++变量的对齐属性值设置  

2012-07-13 20:58:08|  分类: 技术类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一个机器的默认对齐对齐值(也是默认的指定对齐值)为机器字长,变量的有效对齐值为指定(可能是默认也可能通过#pragma pack(n)指定)对齐值和自身对齐值中较小的那个。所谓的有效对齐值N满足买个变量存储的首地址X%N == 0. 设置对齐的一个主要目的是减少一次存储器读操作,减少对存储器的引用,加快效率

/*
1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,
对于int,float,double类型,其自身对齐值为4,单位字节。
2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。
3.指定对齐值:#pragma pack (value)时的指定对齐值value。
4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。
*/
#include<iostream>
#include<time.h>
using namespace std;
#pragma pack(1)
struct CTest
{
char a;
int b;
short c;
};
#pragma pack()
int main()
{
CTest test;
clock_t t1,t2;
t1 = clock();
cout<<"SIZE OF CTest:"<<sizeof(CTest)<<endl;
cout<<"TEST:"<<&test<<endl;
cout<<"A:"<<&(test.a)<<endl;
cout<<"B:"<<&(test.b)<<endl;
cout<<"C:"<<&(test.c)<<endl;
t2 = clock();
cout<<"Total Time:"<<t2-t1<<endl;
system("pause");
return 0;
}


1.未设置指定属性的运行结果
C/C++变量的对齐属性值设置 - 刘邓 - 刘邓
2.设置指定属性的运行结果
C/C++变量的对齐属性值设置 - 刘邓 - 刘邓
 
  评论这张
 
阅读(143)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017