结构体变量与结构体指针变量的使用方法
2012-09-29 16:34
246 查看
一、结构体的定义格式一般如下:
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的数据访问、修改。
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的数据访问、修改。
相关文章推荐
- 结构体变量、单元型变量和结构体数组的使用方法
- SQL Server中变量的声明和使用方法
- VS高级使用方法1:autoexp.dat使用Visual studio在debug时显示变量内容
- js如何把字符串转为变量使用,以及js下将字符串当函数去执行的方法
- 【Everyday】__ 测试成员变量使用方法的程序
- 在Angular外部使用js调用Angular控制器中提供的函数方法或变量
- oracle函数、包、变量的定义和使用、重点”结构体和数组”
- php smarty模版引擎中变量操作符及使用方法
- awk中使用shell变量的两种方法
- Discuz!$_G变量的使用方法
- 交换变量的方法,不使用第3变量
- (struct)结构体变量作为函数参数调用的方法小结
- nginx变量使用方法详解(4)
- 结构体指针变量与结构体成员指针变量
- 交换两个变量的值,不使用第三个变量的四种方法
- 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用
- Discuz!$_G变量的使用方法
- WPF中使用“全局变量”的简单方法
- 【新版】VC中全局变量的使用总结(N种方法,看完就不再疑惑啦!)
- 警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用