1.结构体和共用体各有什么特点
结构体的特点:
- 结构体在内存中占用的空间是其所有成员变量空间的总和。每个成员变量都会占用一定的内存空间,这些空间是连续的。结构体的总大小是其最宽基本类型成员大小的整数倍。
- 结构体成员的地址不同,每个成员的地址可以通过结构体变量的地址加上偏移量得到。
- 在对结构体变量进行内存分配时,会遵循一定的字节对齐原则。结构体的首地址是其最宽基本类型成员大小的整数倍,每个成员相对结构体首地址的偏移量都是其大小的整数倍。在某些情况下,编译器可能会在成员之间插入填充字节以符合这些规则。
共用体的特点:
- 共用体在内存中只占用一块连续的空间,大小为其中最长的成员变量的大小。所有成员变量共享同一块内存空间,因此在任何时刻,只有一个成员变量有意义。
- 共用体任何时候都只会出现其体内变量中的一个。这是因为它们都共享同一块内存空间,因此同一时间只能保存一个成员的值。
- 共用体的每一个成员在内存中的地址都是相同的。这是因为所有成员共享同一块内存空间,因此它们的地址自然相同。
总结来说,结构体和共用体在存储和特性上的主要区别在于他们在内存中如何分配空间以及如何处理成员变量的数据。结构体每个成员有自己的内存空间且可以同时保存多个值,而共用体所有成员共享同一块内存空间,同一时间只能保存一个成员的值。
2.以下流程工具(VB、QT/C++、STemuin、Linux、SQL、Figma、keil、ARM单片机编程、RTOS、UCOS、Git等)的简要介绍
1.VB:Visual Basic是一种由Microsoft开发的编程语言,主要用于创建Windows桌面应用程序。如果掌握了VB,那么应该能够使用它编写简单的到复杂的Windows应用程序。
2.QT/C++:QT是一种用于开发跨平台应用程序的框架,而C++是一种通用编程语言。掌握QT/C++意味着可以使用它们来开发高质量的跨平台应用程序。
3.Steemind,它是一种基于C++的开源加密算法库,用于实现数字签名和加密通信。
4.Linux:Linux是一种流行的开源操作系统,可以运行在各种硬件平台上。掌握Linux意味着理解了Linux系统的基本原理、Shell命令、文件系统、系统管理等等。
5.SQL:结构化查询语言(SQL)是用于管理关系数据库的标准语言。
6.Figma:Figma是一种设计工具,用于创建和分享用户界面(UI)和图标设计。
7.keil:Keil是Keil软件公司开发的嵌入式系统开发工具,它支持多种微控制器和实时操作系统。
8.ARM单片机编程:ARM是一种流行的微控制器架构,用于各种嵌入式应用。掌握ARM单片机编程意味着应该能够使用ARM指令集进行编程。
9.RTOS:实时操作系统(RTOS)是一种用于嵌入式系统的操作系统,它提供实时响应和多任务处理。掌握RTOS意味着理解了RTOS的基本原理和调度算法。
10.uCOS:ucOS是一种轻量级实时操作系统(RTOS),适用于微控制器和实时应用程序。如果您掌握了ucOS,那么应该能够使用它来开发实时应用程序。
11.Git:Git是一种流行的版本控制系统,用于协作开发软件项目。掌握Git意味着理解了版本控制的基本概念、Git命令和工作流程,并能够使用它来管理软件项目的版本历史记录。