c语言多文件编程(小白也能看懂喔)

发现有很多童鞋学了一年半载的C语言还不会多文件编程。很多人到现在一个程序都只有一个源文件(main.cpp或mian.c)其实C语言的多文件并不神秘,今天我来说说怎么多文件编程,顺便自己也小结一下。

跟着我一步一步来,很简单的哦!

现在先写一个简单的程序。保证学过C语言的你都能看懂。

#include<stdio.h>
int max(int x, int y);
int min(int x, int y);
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}
int max(int x, int y)
{
	return x > y ? x : y;
}
int min(int x, int y)
{
	return x < y ? x : y;
}

这个程序够简单吧!

这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。假如代码量很多时,你会发现这样的程序调试很费力。

为了体现C语言模块化的编程思想,我们可不可以将上面2个函数max,min的声明和实现放在两个文件里呢,答案是肯定的.

修改版
main.c : 放main函数
math.h : 放函数的声明
math.c : 放函数的实现

我们就可以将代码写成如下格式

main.c文件

#include<stdio.h>
#include"math.h"
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}

math.h 文件

#pragma once
#ifndef MATH_H
#define MATH_H
int max(int x, int y);
int min(int x, int y);
#endif // !MATH_H

math.c文件

int max(int x, int y)
{
	return x > y ? x : y;
}
int min(int x, int y)
{
	return x < y ? x : y;
}

在这里呢要给大家强调两个点
.在我们包含自己所写的头文件时,用" "

实际上#include机制很简单,就是把#include所包含的文件中的内容直接复制到#include所在的位置并替换#include语句,所以main.c文件和下面的程序是等价的.

#include<stdio.h>
#pragma once
#ifndef MATH_H
#define MATH_H
int max(int x, int y);
int min(int x, int y);
#endif // !MATH_H
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}

二.
有些小伙伴们可能对下面的代码有些陌生

#ifndef MATH_H
#define MATH_H

#endif

实际上这是为了头文件不重复包含,有些粗心的同学可能包含了两次头文件,这样就可以避免重复包含

#ifndef MATH_H  // if not define
#define MATH_H  // define

#endif         // 结束

这段代码是说 如果我们没有包含MATH_H头文件,我们就将MATH_H头文件包含进去
如果我们包含了两次,那么第二次判断时,我们已经包含了MATH_H头文件,我们就不会再包含MATH_H头文件,因此这样就可以避免重复包含

简单吧!一个简单的多文件工程就产生了。

当然代码量很少的时候不需要这么做,这里仅仅是为了演示喔!

  • 61
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值