news 2026/5/9 10:55:48

结构体struct类型定义的意义和一个vscode实用插件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
结构体struct类型定义的意义和一个vscode实用插件

最近,在看stm32的中间层LwIP的源码代码,对结构类类型定义struct有了一个新的认识,记录下来。另外,发现了一个比较好用的vscode插件也记录下来。

(1)结构体struct类型结构体类型定义。

首先,struct类型是因为某些实物的属性比较复杂,用某一个简单的类型无法描述,但是这些属性都是都是属于某一个实物,也是说本身就有在一个范围内的特性。我们都知道c语言的定义的变量都是定义在内存上,内存上的内存空间只有两种一种是相连的,另外就是不相连的。而结构体类型struct定义结构体成员变量本身就是在内存上相连的。也就是说那一众属性本身属于某一个需要描述的事物,对应的结构体类型定义的变量内部的成员变量本在在内存上是相连的。

我们都知道c语言的函数的本质是操作内存变量,因为c语言中比较常用的做法是这些内存变量打包成一个struct结构体类型,并定义对应结构体类型变量,这个结构体类型变量内部的成员在内存上本事就是相邻的,我们定义相关函数最常用的办法就是通过结构类指针类型变量去读写访问,通过对这些结构体内部成员变量读写不同的数值就实现了需要的功能(最直接的就是寄存器,寄存器的位段写入需要的数值就能操纵硬件实现不同功能,对应的真正结构体内存变量通过写入有效数据就可以在读它的时候进行判断就知道发生了什么事情,就可以指导访问其他函数,这样功能就实现了)。结构体实现变量打包,除了在硬件上像寄存器一样本身就是相连,还可以将某些模糊的属性变量进行打包成相邻的结构体内部成员变量。结构体的发明进一步约束简化了内存变量的布局分部,很大程度上简化了代码读写访问的复杂型。

(2)一个比较实用的vscode插件

最近,在读LwIP源码的时候遇到一个问题就是条件编译#if #else #end如果代码比较长,因为vscode是没有相关条件编译的折叠辅助线功能让我们一目了然条件变量在哪里结束,哪里分支了。

我发现一个插件名字叫“IFDEF Pathfinder”安装后能够在条件变量右面有不同颜色的相关提示,这样我们就可以通过快速下拉代码找到对应宏定义在哪里结束了。

这样我们就可以比较容易找到条件编译在哪里结束了(虽然也没有相关折叠功能好用)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 10:10:39

【课程设计/毕业设计】 基于Spring Boot的智能养老服务平台基于springboot的社会养老平台的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/8 14:10:07

吐血推荐8个AI论文网站,专科生轻松搞定毕业论文!

吐血推荐8个AI论文网站,专科生轻松搞定毕业论文! 专科生的救星:AI工具如何改变论文写作方式 随着人工智能技术的不断发展,越来越多的专科生开始借助AI工具来提升论文写作效率。尤其是在当前AIGC(人工智能生成内容&am…

作者头像 李华
网站建设 2026/5/1 8:27:30

开发AI Agent不用从零开始:3个版本实现从入门到工业级应用

本文详细介绍AI Agent开发的核心原理与三种实现版本:极简版(半天可跑)、进阶版(多工具调用)和工业级(自主进化)。通过"规划-执行-反馈"三大模块,结合大模型与工具调用能力…

作者头像 李华
网站建设 2026/5/8 6:13:26

openssl-libs-1.1.1f-4.p12.ky10.x86_64.rpm 安装指南 解决依赖与常见报错

一、准备工作:先瞅一眼有没有装过 动手之前,最好先看一眼系统里是不是已经有这个包了,或者版本对不对。省得装重复了或者搞混。 打开终端,输入下面这个命令,然后回车: rpm -q openssl-libs 如果屏幕上显…

作者头像 李华
网站建设 2026/5/1 12:17:49

手把手玩转西门子S7-200 Smart与施耐德ATV12的Modbus基情互动

西门子plc200smart与施耐德ATV12变频器modbus通讯程序,可以帮你学会modbus通讯,是程序,说明书,接线定义,参数调试! 搞工控的兄弟应该都懂,设备之间没通讯就像谈恋爱没微信——浑身难受。今天咱们就拿西门子…

作者头像 李华