C/C++ 语言中结构体的内存分配
来源:互联网 发布:densenet caffe 编辑:程序博客网 时间:2024/05/16 05:22
曾经贴过关于位域的相关文档,再以一个小例题补充之;
当未用 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度对齐;当使用了 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度和 #pragma 指令指定的位数中的较小值对齐。
#pragma 指令格式如下所示:
#pragma pack(4) // 或者 #pragma pack(push, 4)
举例如下:(机器字长为 32 位)
struct
{
char a;
}test;
printf("%d/n", sizeof test);
打印出来的结果为 1;
struct
{
char a;
short b;
char c;
}test;
printf("%d/n", sizeof test);
打印出来的结果为 6;
struct
{
char a;
int b;
char c;
}test;
printf("%d/n", sizeof test);
打印出来的结果为 12;
struct
{
char a;
double b;
char c;
}test;
printf("%d/n", sizeof test);
打印出来的结果为 24;
#pragma pack(4)
struct
{
char a;
double b;
char c;
}test;
printf("%d/n", sizeof test);
打印出来的结果为 16;
- C/C++ 语言中结构体的内存分配
- C/C++ 语言中结构体的内存分配
- C/C++ 语言中结构体的内存分配
- C/C++ 语言中结构体的内存分配
- C/C++ 语言中结构体的内存分配
- c语言中:结构体的内存分配
- C语言结构体分配内存问题
- C语言结构体成员内存分配
- C语言中分配内存的函数
- C语言中关于内存的分配
- c语言中内存的分配
- C语言中内存分配
- C语言中内存分配
- C语言中内存分配
- c语言中内存分配
- C语言中内存分配
- C语言中内存分配
- C语言中内存分配
- 国内搜索引擎技术现状 zZ
- UNIX Workshop Notes
- 如何做好一个垂直搜索引擎 zZ
- 优化lighttpd以提升性能
- 关于子查询我想说的 2
- C/C++ 语言中结构体的内存分配
- 用C++遍历一个文件夹下面所有的文件
- 有网盘啦,重新发自己写的Sudoku
- Driver Development Part 1: Introduction to Drivers
- Driver Development Part 2: Introduction to Implementing IOCTLs
- 行列转列(很实用)
- Driver Development Part 3: Introduction to driver contexts
- Driver Development Part 4: Introduction to device stacks
- Driver Development Part 5: Introduction to the Transport Device Interface