【嵌入式C语言系列】关键字详解【struct】

struct用法

此声明描述了一个由n个数据类型的成员组成的结构,它并未创建实际的数据对象,只描述了该对象由什么组成。
C的结构的声明格式如下:

struct [结构体名] 
{
	类型标识符 成员名 1;
	类型标识符 成员名 2...
	类型标识符 成员名 n;
};

struct关键字,它表明跟在其后的是一个结构,后面是一个可选的标记,后面的程序中可以使用该标记引用该结构,因而我们可以在后面的程序中可以这样声明:

struct [结构体名] 结构体变量;

在结构体声明中用一对花括号括起来的是结构体成员列表。每个成员都用自己的声明来描述。成员可以是任意一种C的数据类型,甚至可以是其它结构。右花括号后面的分号是声明所必需的,表示该结构布局定义结束,例如:

struct students
{
	char name[50];
	char sex[50];
	int age;
	float score;
};

int main(void)
 {
	struct students student;
	printf("Name: %s\t",student.name[0]);
	printf("Sex: %s\t", student.sex);
	printf("Age: %d\t", student.age);
	printf("Score: %f\r\n", student.score);
	return 0;
 }

结构的声明放在所有函数的外部,也可以放在一个函数的内部。如果把一个结构声明在一个函数的内部,那么它的标记就只限于函数内部使用;如果把结构声明在所有函数的外部,那么该声明之后的所有函数都能使用它的标记。
结构有两层含义,一层含义是“结构布局”,如上述例子的structstudent{…};告诉编译器如何表示数据,但是它并未让编译器为数据分配空间;
另一层含义是创建一个结构体变量,如上述例子的struct students
student;编译器执行这行代码便创建了一个结构体变量student,编译器使用students模板为该变量分配空间:内含50个元素的char型数组1、50个元素的char型数组2,一个int型的变量和一个float的变量,这些存储空间都与一个名称为student结合在一起,如图 5.3.3 所示。
在这里插入图片描述
在内存中这个结构中的成员也是连续存储的。在通常程序设计中,struct还会与typedef一起使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值