#pragma pack(n)的用法
来源:互联网 发布:mac网页收藏快捷键 编辑:程序博客网 时间:2024/04/29 10:39
#pragma pack(n)
解释:
每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。
规则:
(1)如果#pramga pack(n)中的n大于结构体成员中任何一个成员所占用的字节数,则该n值无效。编译器会选取结构体中最大数据成员的字节数为基准进行对齐。
(2)如果 n 小于该变量的类型所占用 的字节数,那么偏移量为 n 的倍数,不用满足默认的对齐方式。结构的总大小也有个 约束条件,分下面两种情况:如果 n 大于所有成员变量类型所占用的字节数,那么结 构的总大小必须为占用空间最大的变量占用的空间数的倍数; 否则必须为 n 的倍数。
例子:
(1)
#pramga pack(8)
struct node
{
int e;
char f;
short int a;
char b;
};
struct node n;
printf("%d\n", sizeof(n));
(2)
#pramga pack(4)
struct node
{
int e;
char f;
short int a;
char b;
};
struct node n;
printf("%d\n", sizeof(n));
(3)
#pramga pack(2)
struct node
{
int e;
char f;
short int a;
char b;
};
struct node n;
printf("%d\n", sizeof(n));
(4)
#pramga pack(1)
struct node
{
int e;
char f;
short int a;
char b;
};
struct node n;
printf("%d\n", sizeof(n));
- #pragma pack(n)的用法
- #pragma pack(n)的用法
- #pragma pack(n)的用法
- #pragma pack(n) 用法
- C++中#pragma pack(N)的用法
- #pragma pack 的用法
- pragma pack的用法
- #pragma pack(n) 的作用
- #pragma pack(n) 的作用
- #pragma pack(n)转的
- #pragma pack(n) 的作用
- #pragma pack(n) 的作用
- #pragma pack(n) 的作用
- #pragma pack(n)的作用
- #pragma pack(n) 的作用
- #pragma pack(n)的作用
- #pragma pack(n) ........ #pragma pack()
- #pragma pack(n) 对齐用法详解
- cf#225-C - Milking cows-贪心
- Shell 不常用命令1
- DataGridView初始化——添加列、添加行号、连接数据库、单击单元格在文本框中显示
- CodeForces 632A
- C# AutoLogin
- #pragma pack(n)的用法
- spinner部分用法
- 小码哥大神班一期全套视频2015年5月至10月
- 类的访问权限于系统维护关联
- 关于android apk包签名的简要说明
- 如何解决标准C库的函数在vs上使用时出现的警告
- Python Convert int to binary
- 《Complex social contagion makes networks more vulnerable to disease outbreaks》
- 代理模式