C语言结构体类型
struct在C语言中是一个关键字,用于定义结构数据类型。 问题中的两种定义的区别在于第一种是给student数据类型,重新定义了一个类型别名,而第二种则单纯的表示一种叫做student的数据结构类型。两者的主要区别在于后面直接定义变量时。如下代码,则可以直接在结构体后面定义一个zhang_san的结构体变量。struct student{int num;struct student *next;}zhang_san; 而第一种的定义,则会出现错误。typedef struct student{ int num; struct student *next;}student zhang_san; 扩展: “结构”是一种构造数据类型,现在一般叫做用户自定义数据类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。 定义一个结构的一般形式为:struct结构名{//成员表列}; 成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:struct stu{ int num; char name[20]; char sex; float score;}; 在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。
1. C语言中有结构体类型。
2. 结构体类型是一种用户自定义的数据类型,它可以包含多个不同类型的成员变量,这些成员变量可以按照自己的需求进行组合,形成一个新的数据类型。
结构体类型的定义可以在函数内部或外部进行,可以在程序中创建结构体变量并对其成员进行操作。
3. 结构体类型的使用可以使程序更加灵活,可以方便地组织和管理相关的数据,提高代码的可读性和可维护性。
结构体类型还可以作为函数的参数和返回值,方便地传递和处理复杂的数据结构。
此外,结构体类型还可以嵌套定义,形成更复杂的数据结构。
C语言中为什么要使用结构体
C语言中结构体至少有以下三个作用:
(1)有机地组织了对象的属性。
比如,在STM32的RTC开发中,我们需要数据来表示日期和时间,这些数据通常是年、月、日、时、分、秒。如果我们不用结构体,那么就需要定义6个变量来表示。这样的话程序的数据结构是松散的,我们的数据结构最好是“高内聚,低耦合”的。所以,用一个结构体来表示更好,无论是从程序的可读性还是可移植性还是可维护性皆是
(2)以修改结构体成员变量的方法代替了函数(入口参数)的重新定义。
如果说结构体有机地组织了对象的属性表示结构体“中看”,那么以修改结构体成员变量的方法代替函数(入口参数)的重新定义就表示了结构体“中用”。
函数的声明void DsipDateTime( _calendar_obj DateTimeVal)不需要改变,只需要增加结构体的成员变量,然后在函数的内部实现上对calendar.week作相应的处理即可。这样,在程序的修改、维护方面作用显著
还没有评论,来说两句吧...