结构体定义一些小技巧
来源:互联网 发布:简单数据库软件有哪些 编辑:程序博客网 时间:2024/04/29 12:13
#include <iostream>using namespace std;//#pragma pack(1)struct A{int a;char b;short c;};struct B{char b;int a;short c;};int main(){cout << sizeof(struct A) << endl;cout << sizeof(struct B) << endl;}
运行结果:
这个主要是由于字节对齐所引起的
结构体默认的字节对齐一般满足三个准则:
(1)结构体变量的首地址能够被其最宽基本类型成员的大小所整除。
(2)结构体每个成员相对于结构体首地址的偏移量(offset)都是成员自身大小的整数
倍,如有需要,编译器会在成员之间加上填充字节(Internal Adding)。
(3)结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要,编译器会在
最末一个成员之后加上填充字节(Trailing Padding)
一般利用下述代码改变其默认的字节对齐数,其中n是字节对齐数
#pragma pack(n)
- 结构体定义一些小技巧
- 结构体定义小技巧
- 结构体小技巧
- 结构体定义使用小总结
- 结构体偏移的小技巧
- C语言中结构体小技巧
- SQL 一些小技巧
- javascript一些小技巧
- 一些小技巧汇总
- SQLServer一些小技巧
- SQL一些小技巧
- SQL一些小技巧
- 一些小技巧
- 一些小技巧
- SQL一些小技巧
- 一些小技巧
- 一些小技巧
- PowerDesigner一些小技巧
- HTML5里面,关于Canvas的KineticJS圆教程!
- C#变量和表达式
- Android [Dex Loader] Unable to execute dex问题
- Android UI【android 仿微信、QQ聊天,带表情,可翻页,带翻页拖动缓冲】
- 什么是Closed-form solution?
- 结构体定义一些小技巧
- wustoj 1269: 划分数 (搜索、dp两种解法)
- android开发教程(四)——java之Hello World
- 俄罗斯方块编程思想一
- 小米2手机使用《高德地图》有感
- 11月新作
- c++一些tips(一)
- [iOS]iOS编程实践第10周作业终于在11周周六晚完成niao
- 我们追求的只是副产品