篇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使用示例: