如何理解c语言中的结构体和头文件

本文详细介绍了C语言中的结构体与头文件的概念、作用及使用方法。包括为何要使用结构体和头文件、如何定义结构体类型、结构体的大小计算规则等,并解释了预编译阶段如何处理头文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件

预编译阶段 会对每一个文件进行预编译
将程序中的include导入的头文件进行展开
<> :导入系统的库
“” :导入自己写的库

为什么要自己写头文件

  1. 希望将功能从main.c文件中抽离出来 以便复用 移植
  2. 让main.c结构更清晰 阅读性更强

如何写头文件

  1. 创建一个头文件 命名(.h) 头文件里面仅存放有哪些方法
  2. 创建一个实现文件 命名(与头文件保持一致.c) 一一实现头文件里面的函数
    a. 导入需要实现的头文件
    b.实现头文件里面的函数

如何使用自己使用头文件

用#include“”导入自己写的头文件的名称

枚举 Enum

enum{
       GradeOne,
       GradeTwo,
       GradeThree//最后一行的,可以不加
    }//分号也可以不加

结构体

结构体是什么

将不同种类型的数据放在一个地方(数据封装)
类(一类事物的高度抽象 --> 封装数据)
数据封装:将多个多种类型不同的数据 封装为一个整体
name age height weight -> Person
//就是将name age height weight这几个数据放在person里面去
wheel door color brand -> Car同理

为什么要结构体

需要将不同类型的数据封装为一个完整的类型

如何定义结构体类型

  struct{
  char name[5]int age;
  }

注意:定义结构体时 结构体内部的类型不能赋值
类型重定义 重命名 给一个新的名称

 typedef struct stu{
 char name[20];
 int age;
 }Student;

结构体的大小

  1. 同种类型 本身就是对齐的(比如int占4个字节 有几个int就占用4*几个字节)
  2. 两种类型 小的向大的靠齐 char与int 一共8个字节
  3. 多种类型 字节小的向字节大的靠齐 如果之前靠齐的类型中
    有剩余的空间,就直接使用 ,如果没有就靠齐
    eg:
 struct{
   char *name;
   int age;
   char car[2];
 };
 //总共占用16个字节
 /**其中最大的是char * 则用8个字节来算
 char *分配8个
 int 也分配8个但只用4个
 char[2]本来只占两个字节 但int分配的字节还有剩余 则将char[2]所该分配的空间放在给int分配的空间里面了 只占2个 但int所分配的空间中还剩2个 是已经分配好了的 无法改变 所以一共16个字节

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值