C语言学习大纲--结构体和联合体
2013-08-20 10:27
190 查看
专题六:结构体和联合体
1. 函数参数微结构体类型
结构类型的变量可以作为函数的参数,但是与基本类型参数的情况一样,虚实结合的过程只是值的复制,因此在函数内部对形参所做的修改,不会影响实参。如果希望函数能够改变实参的值,应该传入变量的地址。即使是以只读方式访问形参的函数,仅仅出于性能的考虑,也可以以地址方式传参,避免结构复制所带来的开销。为了防止在函数中意外地修改实参,可以用常量指针定义参数
2. 内存的补齐与对齐
(1)对齐:结构中的每个成员在内存中的起始位置必须是其自身字节长度的整数倍,超过4字节的按4字节算。
(2)补齐:结构体的字节长度必须是其字节数最多的成员的字节长度的整数倍,超过4字节的按4字节算。
3. 位域
struct X {
inta : 1;
intb : 2;
intc : 5;
};
(1)位域可以指定每个成员的大小(以位为单位),用以节省内存。
(2)位域用法和结构一样,但是不能取成员的地址。
(3)位域成员的类型必须是整型类(char/short/int/long/long long及其unsigned版本)
4. 大端小端
联合体中的成员共享一块内存,其字节长度为其字节数长度最大成员的长度
大端:高字节存在低地址上为大端系统
小端:低字节存在低地址上为小端系统
1. 函数参数微结构体类型
结构类型的变量可以作为函数的参数,但是与基本类型参数的情况一样,虚实结合的过程只是值的复制,因此在函数内部对形参所做的修改,不会影响实参。如果希望函数能够改变实参的值,应该传入变量的地址。即使是以只读方式访问形参的函数,仅仅出于性能的考虑,也可以以地址方式传参,避免结构复制所带来的开销。为了防止在函数中意外地修改实参,可以用常量指针定义参数
2. 内存的补齐与对齐
(1)对齐:结构中的每个成员在内存中的起始位置必须是其自身字节长度的整数倍,超过4字节的按4字节算。
(2)补齐:结构体的字节长度必须是其字节数最多的成员的字节长度的整数倍,超过4字节的按4字节算。
3. 位域
struct X {
inta : 1;
intb : 2;
intc : 5;
};
(1)位域可以指定每个成员的大小(以位为单位),用以节省内存。
(2)位域用法和结构一样,但是不能取成员的地址。
(3)位域成员的类型必须是整型类(char/short/int/long/long long及其unsigned版本)
4. 大端小端
联合体中的成员共享一块内存,其字节长度为其字节数长度最大成员的长度
大端:高字节存在低地址上为大端系统
小端:低字节存在低地址上为小端系统
相关文章推荐
- C语言学习笔记10-结构体、枚举、联合体
- C语言提高班学习笔记 lesson2 结构体
- C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结
- C语言学习大纲--typedef的使用
- C语言中结构体以及在结构体中调用方法;联合体和联合体的使用
- C语言中的位运算&结构体浅析 — <编程之美>1.2学习笔记
- C语言中的结构体的入门学习教程
- C语言优化学习——结构体定义优化
- 结构体与共用体03 - 零基础入门学习C语言55
- iOS开发学习笔记 2-8 C语言部分 联合 枚举 结构体
- C语言结构体,联合体,枚举与typedef
- C语言第五课 结构体、枚举——ios学习连载五
- c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组
- C语言学习-struct结构体定义你自己的数据类型
- C语言学习笔记——结构体
- C语言中的位运算&结构体浅析 — <编程之美>1.2学习笔记
- IOS学习---C语言基础学习7(变量类型与结构体)
- 结构体与共用体03 - 零基础入门学习C语言55
- C语言学习笔记9--结构体
- 结构体与共用体05 - 零基础入门学习C语言57