在C语言中有一块极容易被忽略,但是对于嵌入式编程来说用处特别大的内容——结构体
我发现在上课的教学中包括许多授课视频中经常会忽略结构体,也许是因为结构体的作用在C++中被完美的替代了,但是在嵌入式的学习中适当的使用好结构体可以搞笑的提高代码的效率。
当我们的代码中需要表示不同类型的变量时,如字符型,浮点型,整型等类型,我们可以使用结构体将这些代码作为一个整体使用。
如下图所示,我们使用struct 创建一个结构体,这个结构体中有我们想要整合的变量及其类型,我们将这些变量和类型作为一个整体。
并且将这个结构体命名为 a 这里的 a 可以理解成变量类型,我们创建了一个新的变量类型a 这个变量类型a是char* ,int .....这些的整体。
我们在使用的时候也是一样,使用变量类型 + 变量名; 的方法创建新的变量,但是要注意的是,在使用结构体时再变量类型前加上struct,让系统可以判断这是一个结构体。
这样子,我们就可以创建出一个结构体变量啦。
接着我们使用 点引用 来使用这个结构体的数据。使用点引用来修改和调用结构体变量的数据。

既然结构体变量作为一种变量,那么结构体变量必定是向内存申请了一部分空间用以存放数据,我们也可以通过变量类型+*的方式创建其对应的指针变量,如下图所示,我们创建了Son的指针变量用来指向一个结构体变量,但是在使用结构体的指针变量时,我们调用数据的方式就不能是点引用,而是需要使用 -> 地址引用的方式修改和调用数据。
我们观察结构体的成员地址时,我们发现:在我们创建成员变量时,这些成员的地址是连续的。所以结构体也就是在数组的基础上为不同的成员申请空间不同的连续内从空间。
我们也可以利用这个特性,直接对地址进行操作(当然这个操作很没有必要)

我们也可以创建结构体函数,将结构体作为返回类型,提高我们代码的可读性以及更好的优化我们代码的结构。


登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!