【c语言】复习无止境,day5--头文件&结构体&文件读写篇【end】

头文件中应该写什么:面临的问题:头文件可能被任何源文件包含,意味着头文件中的内容会在多个目标文件中存在,合并不能冲突重点:头文件中只能编写声明语句,不能有定义语句全局变量的声明 extern函数的声明宏常量宏函数typedef 类型重定义结构、联合、枚举的类型的声明头文件的编写规则:1、为每个.c文件写一份.h文件,因为.h文件是对.c文件的说明2、如果需要用到某个.c文件中的变量、函数、宏,只需要把它的头文件导入即可。3、.c文件也要导入它的.h 目的是为了让声明与定义一致头文
摘要由CSDN通过智能技术生成

头文件中应该写什么

面临的问题:头文件可能被任何源文件包含,意味着头文件中的内容会在多个目标文件中存在,合并不能冲突
重点:头文件中只能编写声明语句,不能有定义语句
全局变量的声明 extern
函数的声明
宏常量
宏函数
typedef 类型重定义
结构、联合、枚举的类型的声明

头文件的编写规则:
1、为每个.c文件写一份.h文件,因为.h文件是对.c文件的说明
2、如果需要用到某个.c文件中的变量、函数、宏,只需要把它的头文件导入即可。
3、.c文件也要导入它的.h 目的是为了让声明与定义一致

头文件重复包含:
解决方案:添加头文件卫士

头文件之间的相互包含:
假如a.h包含了b.h,b.h又需要包含a.h,这种情况就会编译错误
解决方案:把a.h中需要的内容 和 b.h中需要的内容提取出来,编写成一个c.h

错误:未知的类型名‘xxxx’ 一般都是头文件之间相互包含导致的(复制粘贴头文件也可能导致)

结构:
结构是一种由程序员自己设计的数据类型,用于描述一个事物的各项数据的,由若干个不同的基础数据类型组成

设计:
struct 结构体名
{
类型 成员名;

};

定义结构变量:
struct 结构体名 结构体变量名;
注意:c语言中,在定义结构体变量时,struct不能省略

定义结构变量并初始化:
struct 结构体名 结构体变量名 = {v1,v2,v3…};
必须按照结构成员设计顺序来初始化

struct 结构体名 结构体变量名 = {.成员名=v1,.成员名=v2…};
只初始化某个成员,不用关注顺序

注意:同类型的结构变量可以直接赋值。
struct Student stu1,stu2;
stu1 = stu2;

访问成员:
结构体变量名.成员名;
结构指针->成员名;

练习:设计一个教师结构体,成员有:姓名、性别、工号、工龄,定义一个教师结构体变量,使用scanf输入各个成员的值,并显示

结构体变量作为形参时:
由于结构体变量的字节数都比较大,值传递的效率比较低,因此都是传递结构变量的地址,如果不需要修改结构变量值,可以使用const保护

   	 	typedef 重定义结构类型
        typedef struct 结构名 结构名;
        之后就不需要使用struct关键字了

   		typedef struct 结构名
        {
   
            类型 成员名;
            
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值