学习笔记 linux 结构体字节对齐
2014-08-15 16:27
295 查看
网络字节序传传输的,结构体要用一字节对齐,否则会因为默认对齐方式而造成程序数据异常,如下图结构体,默认对齐方式下,结构体长度为2+2+2+2=8;一字节对齐方式下,结构体长度为1+2+2+2=7
#pragma pack(1)
typedef struct
{
char a;
short b;
char c[2];
short d;
} Test;
#pragma pack()
#pragma pack(1)
typedef struct
{
char a;
short b;
char c[2];
short d;
} Test;
#pragma pack()
相关文章推荐
- C语言学习笔记--------伊能C语言学习笔记------C语言结构体字节对齐机制
- (c/c++学习笔记三) 结构体与联合体的字节对齐
- STM32学习笔记10——stm32中结构体字节对齐问题
- 结构体字节对齐笔记(Mac OS 10.9 中测试)
- 字节对齐的学习笔记
- Linux程序设计学习笔记----网络编程之网络数据包拆封包与字节顺序大小端
- Linux 驱动学习笔记(file_operations结构体详细分析)
- windows和Linux之间socket传输结构体关于字节对齐产生的问题
- 学习笔记-C/C++-结构体与sizeof,内存对齐的题目怎么做
- C语言学习笔记(结构体对齐问题)
- 【C++学习笔记】sizeof()的用法与字节对齐
- 学习笔记-C/C++-结构体与sizeof,内存对齐的题目怎么做
- 字节对齐的学习笔记
- 字节对齐《c和指针》笔记--包含位域结构体的内存对齐(32bit,GCC)
- Linux设备模型学习笔记——结构体描述
- C++学习笔记(二) bool const 和 #define 结构体内存对齐
- rh9 linux服务配置学习笔记--------dns
- Linux下汇编学习笔记之三--(Professional Assembly Language)
- linux 学习笔记(系统管理篇#已整理完#)
- Socket学习笔记二(本机与网络字节顺序的转换)