结构体变量与结构体指针变量的使用方法

来源:互联网 发布:如何零基础学算法 编辑:程序博客网 时间:2024/06/02 09:27

一、结构体的定义格式一般如下:

Typedef struct SCI

{

    U8 data[MAXLEN];

     U16 pos;

}TSCI;


二、访问结构体成员的基本方法有两种:

1、定义一个结构体变量直接访问成员变量;

2、定义一个结构体指针变量间接访问结构体变量。


(1) 结构体变量访问

TSCI  Sci1;

Sci1.data [ Sci1.pos++]= num;

(2) 结构体指针变量访问

TSCI   *Sci2,b;

Sci2= &b;    //指针变量必须初始化    指向一个结构体变量

Sci2->data[Sci2->pos++] = num;

(3)(*Sci1).data    Sci2->data   效果等效


三、如何实现结构体被其他函数调用

  假设A文件中定义了一个结构体,B文件可以对A中定义的结构体进行访问和修改数据。

1、 在A.h中定义结构体

Typedef struct SCI

{

U8 data[MAXLEN];

 U16 pos;

}TSCI;

2、在A.c文件中声明一个结构体变量

TSCI Sci;

3、要实现B.c文件能够调用A中的结构体,需要做到两点:

 (1)B.h中包含A.h头文件; 

(2)A.c中实现返回结构体变量地址的函数。

     实现函数如下:

TSCI *  Get_Address(void)   //返回结构体变量的地址  (此TSCI结构体须在A.h中定义)

{

    Return &Sci;

}

(4)在B.c中定义一个结构体指针变量,通过调用Get_Address函数得到Sci的地址,将此地址赋给B.h中定义的结构体指针变量。

    TSCI *pSci2;

     pSci2 = Get_Address();

     pSci2->data[pSci2->pos++]=num;


     这样就可以实现对A.c中的结构体变量Sci的数据访问、修改。