原创
嵌入式微控制器C语言学习笔记10-《C程序设计语言(第2版)》第6章
结构是一个或多个变量的集合,这些变量可能为不同的类型,为了处理的方便将这些变量组织在一个名字之下。
struct声明定义了一种数据类型。struct后面的名字称为结构标记(可省略)。结构定义的变量称为成员。
结构的合法操作有:作为一个整体复制和赋值,通过&运算符取地址,访问其成员。
可以通过3种方法传递结构:一是分别传递各个结构成员,二是传递整个结构,三是传递指向结构的指针。
如果传递给函数的结构很大,使用指针方式的效率通常比复制整个结构的效率要高。
C语言提供了一个编译时一元运算符sizeof,它可以用来计算任一对象的长度。
不要认为结构的长度等于各成员长度的和。因为不同的对象有不同的对齐要求,所以结构中可能会出现未定名的空穴。
C语言提供了一个typedef的功能,它用来建立新的数据类型名。typedef中声明的类型在变量名位置出现,而不是紧接在关键字typedef之后。
联合可以在不同时刻保存不同类型和长度的对象的变量。联合的目的:一个变量可以合法地保存多个数据类型中任何一种类型的对象,其语法结构基于结构。
实际上,联合就是一个结构,它的所有成员相对于基地址的偏移量都为0,此结构空间大道足够容纳最“宽”的成员。并且,其对齐方式要适合于联合中所有类型的成员,对联合允许的操作与结构的相同。
文章评论(0条评论)
登录后参与讨论