结构体指针变量的定义
最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用。
1.结构体类型定义
定义方式1:
Typedef struct LNode {int data; // 数据域struct LNode *next; // 指针域 } *LinkList;
定义方式2:
struct LNode {int data; // 数据域struct LNode *next; // 指针域}; Typedef struct LNode *LinkList;
以上两个定义方式是等价的,是将 *LinkList 定 义为 struct LNode 类型,即 LinkList 被定义为一个类型名。这样就可以用 LinkList来定义说明新的变量了,如:
LinkList L;
结构体变量与结构体指针变量的使用方法
一、结构体的定义格式一般如下:
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的数据访问、修改。
结构体指针变量的定义相关推荐
- 结构体指针变量含义,结构体指针函数
最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode { int d ...
- c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...
C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...
- 关于c/c++里面结构体指针变量的申请空间问题。
这个问题是我在2020年刚开始学数据结构链表那一章遇到的,当时应该也没完全理解透彻,然后最近又遇到了,重新了解了一下.感觉网上许多人说的也未必正确,所以跟大家讲讲我的看法. 先得有两个知识前提: 1. ...
- 结构体指针和结构体指针变量的区别
文章目录 前言 一.普通结构体变量 二.结构体指针变量 三.结构体指针 完整代码如下: 前言 结构体变量主要有三种应用场景:1.普通结构体变量:2.结构体指针变量:3.结构体指针. 一.普通结构体变量 ...
- c语言结构内部定义指针,C语言知识补漏(一)结构体指针以及位域定义
一.结构体指针 typedef struct { unsigned long int DATA; unsigned long int DIRECTION; unsigned long int INTE ...
- c语言 返回函数是结构体指针变量,一个函数返回值为指向结构体的指针的问题...
一个函数返回值为指向结构体的指针的问题 #include #include struct student { int num; char name[10]; struct student *next; ...
- C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...
- 结构体变量和结构体指针变量作为函数参数传递问题
字符串赋值:strcpy_s(pstu->name, "张三"); 需要引入头文件:#include <string.h> #include <stdio. ...
- c语言如何将值赋给结构体指针,C语言给结构体指针赋值
<C语言给结构体指针赋值>由会员分享,可在线阅读,更多相关<C语言给结构体指针赋值(6页珍藏版)>请在人人文库网上搜索. 1.指向结构体的指针 在C语言中几乎可以创建指向任何类 ...
最新文章
- 堆排序算法实现思想个人理解
- 用Docker搭建Nexus私服
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件...
- MySQL中有exists关键字吗_Mysql中EXISTS关键字用法、总结
- mysql从5.1.63升级到5.6.20出现的问题
- 蓝桥杯 ALGO-11算法训练 瓷砖铺放(递归/动态规划)
- WebDriverAgent安装
- WebConfig配置文件详解
- Android 联系人信息的获取
- myeclipse 8.5安装freemarker插件方法
- Iaas,paas,saas区别与联系
- Linux系统的镜像文件iso下载地址
- Centos7 tomcat优化
- 算法入门基础知识总结
- 利用ADB命令强制卸载oppo自带浏览器
- SuperSocket服务器架设(一):认识SuperSocket
- 上传图片时出现http 415错误
- 禁用Google英文翻译功能
- R语言作业一:矩估计、极大似然估计、拟合、对数正态分布、泊松分布、负二项分布
- win10的0x0000225及0x000007b修复方法
热门文章
- 我国关键信息基础设施安全保护白皮书
- Intellij IDEA如何添加注释并且修改注释样式
- 《鱿鱼游戏》的深刻,在于足够肤浅
- “读芯术”精华文章汇总:前程规划
- 股票预测论文精读:Astock: a new dataset automated stock trading based on stock-specific news analyzing mod
- h5微信js-sdk分享接口php,H5 微信JSSDK自定义分享代码模板
- mac系统启动spring项目报错
- monaco-editor(code编辑器插件)使用及常用配置与方法
- C# DES加密解密算法
- 滑坡的剖面图怎么用计算机绘制,利用AutoCAD绘制地质图的若干方法