黑马程序员—C学习笔记—第一次写头文件

本文分享了个人学习编程的心得体会,强调通过实际操作加深理解的重要性。通过观看黑马视频并亲自敲代码,作者发现许多细节只有在实践中才能真正领悟。文章提供了入门级的代码示例,涉及多文件的编译与链接过程,并讨论了单文件与多文件结构的优缺点。此外,还介绍了如何将函数抽离到单独的文件中,以及如何通过头文件实现不同文件间的调用与关联。

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

———–Java培训、Android培训、IOS培训、.Net培训、期待与您交流!————

本节是个人学习过程中的笔记,供初学者一起学习,大神勿喷。

看着黑马视频后自己敲代码,发现很多细节自己动手才知道利害,所以建议初学者多多动手实践吧,不然自己写的时候发现明明很简单的代码竟然也有点犹豫。

先贴代码吧,文字太多没人看,入门级代码如下:

多文件.c

#include <stdio.h>

//int average();
//int maxNumber();
//如果不使用头文件,可以如上面那般声明函数,然后一起编译.c文件也可以
#include "多文件-辅助.h"
//系统文件用<>,自定义的用""
int main()
{
    int num1 = 2;
    int num2 = 8;
    int averageResult = average(num1,num2);
    int maxNumberResult = maxNumber(num1,num2);

    printf("The average is %d\n",averageResult);
    printf("The maxNumber is %d\n",maxNumberResult);
    //程序很简单,就是用其他文件里面的函数来计算,main函数中输出结果
    return 0;
}

多文件-辅助.c

int average(int num1,int num2)
{
    return (num1+num2)/2;
}

int maxNumber(int num1,int num2)
{
    return num1>=num2?num1:num2;
    //这里只是需要一个值,这样写还是很方便的,没必要考虑相等的情况
}

多文件-辅助.h

//int average();
//int maxNumber();
//两种格式的的声明都可以。
int average(int num1,int num2);
int maxNumber(int num1,int num2);

终端运行结果

MacdeMacBook-Pro:abc mac$ cc 多文件.c 多文件-辅助.c -o 测试头文件
MacdeMacBook-Pro:abc mac$ ./测试头文件 
The average is 5
The maxNumber is 8
MacdeMacBook-Pro:abc mac$ 

这个头文件,其实包含多个文件之间的关联,一起编译链接的过程,李明杰老师的讲得很详细,借花献佛如下(欢迎大家去看黑马视频,很不错哦):

  1. 单文件的坏处
     一个文件的内容太多,不利于阅读、调试
     多人修改同一个文件出问题
     公司里面是团队合作

  2. 将sum函数抽取到另一个.c文件中
     先直接调用sum函数,编译警告、链接main.c错误
     #include “sum.c” , 编译链接main.c,运行成功
     如果avr.c中使用sum.c,编译链接main.c,运行程序

  3. 在其他文件中声明sum函数
     int sum(int,int);
     编译链接main.c
     编译链接sum.c
     编译链接main.c sum.c,运行成功
     avr.c利用一样的方法

  4. 将int sum(int,int)抽取到另外一个文件中
     不抽取声明的坏处:增加新的函数了
     抽取到.c文件中?开发工具会将所有的.c进行编译链接
     抽取到.h文件中

  5. 抽取步骤总结
     .c文件写函数的定义
     .h文件写函数的声明
     要想用我的函数,请包含我的.h文件
     好处分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值