篇3-枚举,结构体,自定义类型
参考资料:
(1)公众号-芯片学堂;
(2)sv绿皮书;
1.枚举类型
1.1枚举类型的特点与作用
(1)枚举是一组有限的被赋予了名字的值的集合;
(2)默认情况下,集合中元素的数据类型都是int类型,元素值的大小是从0开始的递增关系,如果自增的值与已经定义的值产生冲突,会导致编译不过(元素的数据类型和值都是可以用户自定义的);
(3)枚举在代码中实现的功能与使用宏类似,都可以使用名字代替数值(宏是在预处理阶段将名字换成了值,而枚举是在编译阶段将名字换成了值);
(4)枚举的重要作用就是为了方便区分和使用;
1.2枚举类型的使用
(1)创建枚举类型与相应变量
(2)枚举类型的子程序
(2.1)name函数;
2.结构体struct
2.1结构体的特点
(1)结构体是一种可以包含不同数据类型元素的集合类型(数组和队列只能包含相同数据类型的元素);类比结构体更强大,不仅把数据组织到一起,还包含操作数据的程序;
(2)结构体在引用时,可以通过元素名称对元素进行单独引用;
(3)合并的结构体与非合并的结构体:
(3.1)对于前者,其元素会被无间隙的存放到一块连续的内存空间上;而对于后者,其物理结构一般依赖于C编译器;
(3.2)sv默认是非合并的,为了提高内存空间的利用率;如果用户想要用合并的,需要在struct关键字后面加上packed;
(3.3)合并结构体可以通过在packed关键字后面加signed/unsigned来指定为有无符号类型;非合并结构体不能被指定为有符号类型的;
2.2结构体的使用
3.typedef
(1)typedef是sv中提供用来重定义类型名的关键字,最大的好处是可以将一些较长的类型定义成简短的类型名;使用typedef可以提高编程效率,也可以通过新的类型名提高代码的可读性;
(2)typedef使用示例:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?