您的位置:首页 > 编程语言 > C语言/C++

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.    大端小端

      联合体中的成员共享一块内存,其字节长度为其字节数长度最大成员的长度

      大端:高字节存在低地址上为大端系统

      小端:低字节存在低地址上为小端系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C C++