搜建筑资料网 - 做最好的工程资料下载网站!本站永久网址:www.sojianzhu.com

当前位置: > 知识 > > 内容页

C 程序设计之结构

浏览:2019-11-30 14:01

 

本人学习C++的过程经验及总结,本文内容:

结构体

工具/环境

VS2015

方法/步骤

    1

    结构类型的定义:

    结构体(struct)简称“结构” 

    用户自定义的构造类型 

    由若干“成员”组成(基本数据类型或者其他构造类型)

    2

    struct 结构名

    {

        // 成员列表

        类型说明符 成员名;

    };

    3

    先定义结构,再说明结构变量:

    struct 结构名 结构体变量名;

    4

    在定义结构类型的同时说明结构变量

    5

    直接说明结构变量,可以不指定结构名

    6

    结构变量成员的表示方法:

        结构变量名.成员名

        结构体指针->成员名

    结构变量的赋值与使用

        CHARACTER boy1;

        boy1.uID=1000;

        boy1.uLevel=0;

    结构变量的初始化

        CHARACTERboy={1001,”Tom”,1,6};

    7

    结构数组

    8

    结构指针变量的声明,结构指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址。

    struct 结构名 *结构指针变量名

    9

    通过结构指针变量访问结构变量成员

    (*结构指针变量).成员名

    结构指针变量->成员名

    10

    结构指针变量作函数参数:

    在ANSIC标准中允许用结构变量作函数参数进行整体传送

    但是传递结构体要需要拷贝所有成员,降低了程序的效率

    最好的办法就是使用指针或引用:

    void CombatStart(CHARACTER*pBoy1,CHARACTER *pBoy2)

    {

      …

    }

    指针变量占用的空间很小,拷贝指针变量高效

    11

    为了能使CPU对变量进行高效快速的访问,变量的起始地址应该具有某些特性,即所谓的“对齐”(减少内存访问次数):

    1、应用程序通常在地址中对齐结构成员。

    2、一个字或双字操作数跨越了4字节边界,或者一个四字操作数跨越了8字节边界,被认为是未对齐的,从而需要两次总线周期来访问内存。

    12

    为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。

    对字、双字和四字来说,自然边界分别是偶数地址,可以被4整除的地址,和可以被8整除的地址。

    13

    结构体在内存中的存储

    根据结构体中的对齐,我们可以看一下下面那个结构体数据在内存中的存储。

    教程结束。
分享到:

相关文章